我在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
的值为7
,DataImportRow
的值为5
。
现在我担心的是,列不是作为数字而是字母引用的,所以它必须是我的代码永远不能工作,因为它是一个可怕的引用。
有没有人有任何建议我如何才能完成上述工作?
答案 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