将工作表中单元格的值复制到单元格范围内

我打算做一个macros,从指定的path上打开一个工作簿,并且循环遍历名字为“Januari,Februari,Mars”的工作表,从C34中扣除这个值。 C34每次都有logging的值,所以不应该改变。 不过我想把它复制到当前的工作表中,第一个目标应该在AA73,第二个在AA74等等。我的代码是

Sub Test() Dim myHeadings Dim i As Long Dim path As String path = "C:\pathtofile\file.xlsx" Dim currentWb As Workbook Set currentWb = ActiveWorkbook Dim openWb As Workbook Set openWb = Workbooks.Open(path) Dim openWs As Worksheet myHeadings = Array("Januari", "Februari", "Mars") For i = 0 To UBound(myHeadings) Set openWs = openWb.Sheets("&i") currentWb.Sheets("Indata").Range("AA73+Application.Match(i,Array,False)").Value = openWs.Range("C34").Value Next i End Sub 

然而,编译器说下标超出了行的范围

 Set openWs = openWb.Sheets("&i") 

在这里,我试图做“我”,我和我等等,但是它没有改变。 此外,我试图使用“ThisWorkbook”而不是“ActiveWorkbook”,但它也没有帮助。 有没有人有一个关于如何以更合适的方式实现这一点的投入?

编辑:适应从戴夫的反应,它的作品导入工作表。 但是,我得到一个错误:

 currentWb.Sheets("Indata").Range("AA73+Application.Match(i,Array,False)").Value = openWs.Range("C34").Value 

我在哪里得到自动化错误-2147221080(800401a8)在所述的代码段。

你已经把你的工作表名称放入一个数组中,所以你可以从数组中调用工作表名称:

 Set openWs = openWb.Sheets(myHeadings(i))