使用Excel VBA复制数据而不打开工作簿

我打算通过macros将数据从一个工作簿复制到另一个工作簿。 不过,我使用的是我公司创build的一个插件,它禁止一次打开多个工作簿。

Application.ScreenUpdating = False CurrentYear = Year(Date) CurrentMonth = Month(Date) StartDate = DateAdd("m", MonthOffset, Date) MonthNo = Month(StartDate) YearNo = Year(StartDate) path2 = IIf(MonthNo >= 10, Dir("C:\path\filename " & YearNo & "-" & MonthNo & ".xlsx"), Dir("C:\path\filename " & YearNo & "-0" & MonthNo & ".xlsx")) p2file = "C:\path" Varrr = IIf(MonthNo >= 10, p2file & path2 & "[filename.xlsx " & YearNo & "-" & MonthNo & ".xlsx]Sheetname!", p2file & path2 & "[filename.xlsx " & YearNo & "-" & MonthNo & ".xlsx]Sheetname!") i = 0 Do While Len(path2) > 0 Varrrcell = Cells(3,4+i).Address(RowAbsolute:=False, ColumnAbsolute:=False) Varrr = Varrr & Varrrcell currentWb.Sheets("Blad1").Cells(27, 2 + i + 12 * (YearNo Mod 2015)).Formula= "=Varrr" i = IIf(i > 12, 1, i + 1) YearNo = IIf(i > 12, YearNo + 1, YearNo) path2 = IIf(i >= 10, Dir("C:\path\filename " & YearNo & "-" & i & ".xlsx"), Dir("C:\path\filename" & YearNo & "-0" & i & ".xlsx")) Varrr = IIf(i >= 10, p2file & path2 & "[filename.xlsx " & YearNo & "-" & MonthNo & ".xlsx]Sheetname!", p2file & path2 & "[filename.xlsx " & YearNo & "-" & MonthNo & ".xlsx]Sheetname!") Loop Application.ScreenUpdating = True 

编辑:我重新编写了我的工作,直接使用公式参考工作簿。 此解决scheme实际上返回正确的path,文件和单元格我想要复制,以便按预期工作。 但是,它会在每个单元格中返回“Varrr”。 我怎样才能让它返回值而不是variables名?

编辑2:创build和更新Varrr时,我还在path2&p2file&“..”之前使用了“=”,只是简单地说

  currentWb.Sheets("Blad1").Cells(27, 2 + i + 12 * (YearNo Mod 2015)).Formula= Varrr 

但是这会导致错误1004

编辑3:我还在表格名称前加了一个“closures”。 它没有帮助。

编辑4:我也试图省略等号,而且Varrr = Varrr&Varrcell

并接着说:

  currentWb.Sheets("Blad1").Cells(27, 2 + i + 12 * (YearNo Mod 2015)).Formula = "=" & varrr 

但它提供了相同的代码片段中的代码1004。 “应用程序定义或对象定义的错误”

编辑5:试图合并ExecuteExcel4Macro我已经尝试了以下解决scheme,其中Dim ReturnedValue作为string:

  Varrr = "'" & p2file & "[filename.xlsx " & YearNo & "-" & MonthNo & ".xlsx]Sheetname!'" ReturnedValue = Varrr & Range("D3").Adress(True,True,-4150) MsgBox ExecuteExcel4Macro(ReturnedValue) 

MsgBox给出函数错误1004.在这里我已经微调了一下,省略了“IIf”语句和Do循环,因为我相信这些在上下文中是多余的。