我处理大量数据,其中我的工作簿包含多张数据,我希望使用工作表中的列来查看相关数据" URR"这是从纸张" SAP Pull"获得的。因此,由于SAP Pull是包含所有数据的主表单,而URR包含具有相关数据的列,因此我将相关数据列复制到SAP Pull并尝试编写vlookup循环以查找列的每一行的相应数据。问题是我不断抛出一个名为Method' range'对象' _Worksheet失败。这是我的代码,因为我对此问题感到困惑。
foreach ($res as $key => $value) {
if ($value == "") {
$res[$key] = "NULL";
}
}
答案 0 :(得分:1)
您错过了第3个标准,该标准告诉Excel您要返回哪个列。
如果在aCell.Value
中找不到wsThat.Range("A2:D3500")
,您还需要处理问题,当找不到值时,它也会停止您的代码。
您需要以某种方式捕获错误。
Dim wsThis As Worksheet
Dim aCell As Range
Sheets("URR").Columns(1).copy Destination:=Sheets("SAP Pull").Columns(22)
Set wsThis = Sheets("SAP Pull")
With wsThis
For Each aCell In .Range("V2:V65000")
.Cells(aCell.Row, 23) = "Not Found"
On Error Resume Next
.Cells(aCell.Row, 23) = Application.WorksheetFunction.VLookup( _
aCell.Value, wsThat.Range("A2:D3500"),4, False)
On Error Goto 0
Next aCell
End With
End Sub
这会在每个单元格中放置Not Found
,如果在范围内找到该值,则会将字段D中的值放入字段中。
答案 1 :(得分:0)
您在VlookUp中缺少一个Statement。
.Cells(aCell.Row, 23) = Application.WorksheetFunction.VLookup( _
aCell.Value, wsThat.Range("A2:D3500"),2, False)
第三个声明适用于将返回的列。