运行时错误'1004' - 对象'_Global'的方法'范围'失败

时间:2013-12-15 23:13:53

标签: excel excel-vba excel-2007 vba

我在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 error行上显示asterisk'd。此外,DataImportColumn的值为7DataImportRow的值为5

现在我担心的是,列不是作为数字而是字母引用的,所以它必须是我的代码永远不能工作,因为它是一个可怕的引用。

有没有人有任何建议我如何才能完成上述工作?

2 个答案:

答案 0 :(得分:4)

您的范围值不正确。您正在引用不存在的单元格“75”。您可能希望使用R1C1表示法轻松使用数字列,而无需转换为字母。

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

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

这可以解决您的问题。

答案 1 :(得分:3)

更改

Range(DataImportColumn & DataImportRow).Offset(0, 2).Value

Cells(DataImportRow,DataImportColumn).Value

当您拥有行和列时,您可以使用cells()对象。语法为Cells(Row,Column)

还有一个提示。您可能希望完全限定Cells对象。例如

ThisWorkbook.Sheets("WhatEver").Cells(DataImportRow,DataImportColumn).Value