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

5

我在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运行时错误”。同时,“DataImportColumn”的值为7,“DataImportRow”的值为5。现在我的担忧是因为列不是用数字而是字母引用的,所以我的代码可能永远无法工作,因为这是一个糟糕的引用方式。请问有谁有任何建议可以让上述代码正常工作吗?
2个回答

9

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

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

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

这应该可以解决你的问题。

3

改变

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

为了

Cells(DataImportRow,DataImportColumn).Value

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

还有一个提示。您可能需要完全限定您的Cells对象。例如:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接