我试图在文本文件输出中获取一个字段,以更新引用数组(Temp),其中B列检查D列并作为D列中的数据进行更新。
STEPS:
创建数组(临时),然后使用“索引匹配”将B列设置为D列以填充H列
Range("H2:H17") = "=INDEX(D2:D17,MATCH(B2:B17,B2:B17,0))"
Dim DoEdit As String
Dim Source As String
Sheets("Temp").Select
Source = Range("B2").Value
EditLine = Line
DoEdit = Range("H2")
If DoEdit <> "" Then
Target = Application.WorksheetFunction.VLookup(Source,Range("B2:D20"),3,False)
End If
此代码仅在定义了源的情况下才1对1起作用,因为源设置为B2,所以输出为“ test1”。
正确的输出应通过B列中的列表: 96NW2702是test1 0039430695是test3 23832026是test11
问题:
我如何通过执行VLookup,检查B列与D列来获取“目标”来更新文本文件。基本上,索引和匹配项是上面上面做的事情,循环遍历B列中的列表吗?我尝试将源设置为B列的范围,但获取“对象必需”,并且无法遍历其余代码。
Dim DoEdit As String
Dim Source As String
Sheets("Temp").Select
Set Source = ThisWorkbook.Worksheets("temp").Range("B2:B20")
EditLine = Line
DoEdit = Range("H2")
If DoEdit <> "" Then
Target = Application.WorksheetFunction.VLookup(Source,False)
End If
否则,使目标等于上面的索引和匹配公式是否更简单?尝试下面的代码与索引和匹配,我得到“无法获得工作表函数类的匹配属性”
Target = Application.WorksheetFunction.Index(Sheets("Temp").Range("D2:D11"),Application.WorksheetFunction.Match(2,Sheets("Temp").Range("B2:B11"),0),1)
感谢您的帮助!