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
在工作簿中查找范围。
大家好,提前感谢您的宝贵时间。
我不是 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
在工作簿中查找范围。