Excel VBA索引/查找

Excel VBA索引/查找,excel,vba,Excel,Vba,代码正在尝试执行以下操作: 从工作表1中,函数应该被调用,它应该从工作表2中的工作表时间中提取位于单元格A1的值(稍后在代码运行时更新为迭代),并将其放置在单元格(7,7)、单元格(9,7)、单元格(11,7)中,依此类推 上面的代码给出了错误“编译错误:参数数目错误或属性赋值无效” 我使用的另一个选项是 Dim worksheet1 As Worksheet Set worksheet1 = ActiveSheet Dim workbook2 As Workbook Se

代码正在尝试执行以下操作:

  • 从工作表1中,函数应该被调用,它应该从工作表2中的工作表时间中提取位于单元格A1的值(稍后在代码运行时更新为迭代),并将其放置在单元格(7,7)、单元格(9,7)、单元格(11,7)中,依此类推
  • 上面的代码给出了错误“编译错误:参数数目错误或属性赋值无效”
我使用的另一个选项是

  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
实际上,只是将公式放入单元格中。但这会导致错误“运行时错误1004:对象的方法范围失败”


任何帮助都将不胜感激。提前感谢您的时间。

您正在寻找申请。评估,而不是申请。计算

 worksheet1.Range(Cells(7 + (i * 2), 7)).Formula = "=" & targetString
我有点不清楚在循环过程中会发生什么变化,因为看起来像公式的字符串始终是静态的

使用.Address with External:=True解析完整的外部路径、工作簿、工作表和范围

For i = 0 To 4
    worksheet1.Cells(7 + (i * 2), 7) = Application.Evaluate(targetString)
Next i

是的,正是我想要的。谢谢。查看我最近的附录,了解创建范围地址的更好方法。
with workbook2.worksheets("Time").range("A1:E366")
    targetString = "index(" & .address(external:=true) & ", 1, 1)"
    debug.print targetString
end with