[英]Excel VBA Index/Lookup
Dim worksheet1 As Worksheet
Set worksheet1 = ActiveSheet
Dim workbook2 As Workbook
Set workbook2 = Workbooks.Open(("F:\Project Sweep\Kim Checklist\" & worksheet1.Cells(19, 12) & "\Consumers.xlsx"))
Dim targetString As String
targetString = "index('" & workbook2.Path & "\[" & workbook2.Name & "]Time'!$A$1:$E$366, 1, 1)"
Dim i As Long
For i = 0 To 4
worksheet1.Cells(7 + (i * 2), 7) = Application.Calculate(targetString)
Next i
该代码试图执行以下操作:
我使用的另一个选项是
worksheet1.Range(Cells(7 + (i * 2), 7)).Formula = "=" & targetString
字面上只是将公式放在单元格中。 但这给出了错误“运行时错误 1004:对象的方法范围失败”
任何帮助将不胜感激,提前感谢您的时间。
您正在寻找 Application.Evaluate,而不是 Application.Calculate。
For i = 0 To 4
worksheet1.Cells(7 + (i * 2), 7) = Application.Evaluate(targetString)
Next i
我有点不清楚在该循环中会发生什么变化,因为看起来像公式的字符串始终是静态的。
使用 .Address 和 External:=True 解析完整的外部路径、工作簿、工作表和范围。
with workbook2.worksheets("Time").range("A1:E366")
targetString = "index(" & .address(external:=true) & ", 1, 1)"
debug.print targetString
end with
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.