web-dev-qa-db-ja.com

実行時エラー '1004'-メソッド 'Range' of object'_Global 'が失敗しました

VBAで、行がエラーを返すという問題があります。

マクロの目的は、特定のセルを見つけてそこにデータを貼り付けることです。

コードは次のとおりです。

'To find Column of Customer imput
For Each cell In Range("B4:M4")

        If cell.Value = strLeftMonth Then
            DataImportColumn = cell.Column

        End If

Next


For Each cell In Worksheets("data customer monthly 2013").Range("A3:A9999")

'First Customer
If cell.Value = strFirstCustomer Then
        DataImportRow = cell.Row

    Range(DataImportColumn & DataImportRow).Offset(0, 2).Value = iFirstCustomerSales ****
End If

上記のコードを実行した後。コードがクラッシュして1004 run-time errorasterisk'd行。また、DataImportColumnの値は7およびDataImportRowの値は5

今私の懸念は、列が数字ではなく文字として参照されていることです。そのため、私のコードはひどい参照であるため、機能しない可能性があります。

上記の作業を行う方法を誰かが提案していますか?

4
s0up2up

範囲の値が正しくありません。存在しないセル「75」を参照しています。 R1C1表記を使用すると、文字に変換する必要なく、数値列を簡単に使用できます。

http://www.bettersolutions.com/Excel/EED883/YI416010881.htm

Range("R" & DataImportRow & "C" & DataImportColumn).Offset(0, 2).Value = iFirstCustomerSales

これで問題が解決するはずです。

4
ApplePie

変化する

_Range(DataImportColumn & DataImportRow).Offset(0, 2).Value
_

_Cells(DataImportRow,DataImportColumn).Value
_

行と列がある場合は、cells()オブジェクトを使用できます。構文はCells(Row,Column)です

また、もう1つのヒント。 Cellsオブジェクトを完全に修飾したい場合があります。例えば

_ThisWorkbook.Sheets("WhatEver").Cells(DataImportRow,DataImportColumn).Value
_
3
Siddharth Rout