Excel VBA - 从多个名为范围的工作簿复制到一个 "recap" 工作簿

Excel VBA - Copy from various workbooks named range to one "recap" workbook

大家好,提前感谢您的宝贵时间。

我不是 vba 方面的专家,但有时它可以帮助我在重复性任务中度过一段美好的时光。

我想将各种文件的信息收集到一个 "recap" 文件中。 我命名了一些范围(每个范围一个单元格)以方便在所有文件中查找这些信息。


这是我开始写的几行:

Sub collectdata()
  Set a = Workbooks.Open("C:\full address\Project1.xlsx")
  Set b = Workbooks.Open("C:\full address\Project2.xlsx")
  Set c = Workbooks.Open("C:\full address\Project3.xlsx")

  ThisWorkbook.Sheets("Data").Range("C3") = a.Application.Range("Project1_Total")
  ThisWorkbook.Sheets("Data").Range("C3") = b.Application.Range("Project2_Total")
  ThisWorkbook.Sheets("Data").Range("C3") = c.Application.Range("Project3_Total")

  a.Close savechanges:=False
  b.Close savechanges:=False
  c.Close savechanges:=False
End Sub

我遇到了错误 1004。我想我知道原因,但我不知道如何纠正。

有一个"project"一切都好。
但是一旦我添加了第二个文件,我就会收到错误 1004。

一个项目中的一个命名范围就可以了。 但是一旦我从同一个文件中添加第二个命名范围,我就会收到错误 1004。

感谢您的宝贵时间。

假设范围在第一个 sheet:

ThisWorkbook.Sheets("Data").Range("C3") = a.Sheets(1).Range("Project1_Total")
ThisWorkbook.Sheets("Data").Range("D3") = b.Sheets(1).Range("Project2_Total")
ThisWorkbook.Sheets("Data").Range("E3") = c.Sheets(1).Range("Project3_Total")

我假设您不想多次覆盖 C3。如果您不知道范围在哪个 sheet 上,您可以使用 find 在工作簿中查找范围。