如何使用VBA从可变Excel工作簿复制数据?

如何使用VBA从可变Excel工作簿复制数据?,excel,excel-2007,vba,Excel,Excel 2007,Vba,我想根据场景复制其他工作簿的内容(例如:我想从工作簿data2013或data2014等复制数据)。通过使用下面的宏,我可以用特定的工作簿来完成这项工作。现在,我希望“\data2013.xls”根据场景的不同而变化。我已经创建了一个函数,可以生成单元格的正确路径:RawData$A 2美元。我想我可以使用一个变量,但我刚退出VBA,你能帮我吗 Sheets("RawData").Select Workbooks.Open Filename:=ThisWorkbook.Path & "\

我想根据场景复制其他工作簿的内容(例如:我想从工作簿data2013或data2014等复制数据)。通过使用下面的宏,我可以用特定的工作簿来完成这项工作。现在,我希望“\data2013.xls”根据场景的不同而变化。我已经创建了一个函数,可以生成单元格的正确路径:RawData$A 2美元。我想我可以使用一个变量,但我刚退出VBA,你能帮我吗

Sheets("RawData").Select
Workbooks.Open Filename:=ThisWorkbook.Path & "\data2013.xls"
Sheets("Documents").Select
ActiveSheet.Unprotect
ActiveSheet.ShowAllData
Range("$A$4:$T$65536").Select
Selection.Copy
Windows("Reports.xls").Activate
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("A1").Select

首先,让我们删除不需要的和不需要的Select语句

' don't use 655536 as after Excel 2007 there will be gazillions of possible rows...
Range("$A$4:$T$" & activesheet.rows.count).Copy Destination:=workbooks("Reports.xls").range("C1")
Sheets("Documents").Unprotect
ActiveSheet.ShowAllData
Range("$A$4:$T$65536").Copy Destination:=workbooks("Reports.xls").range("C1")
接下来,要使用变量作为源数据,请首先声明它:

dim sSrcBook as string
然后设置其值:

sSrcBook="\data2013.xls"
然后使用它

Workbooks.Open Filename:=ThisWorkbook.Path & sSrcBook
Sheets("Documents").Unprotect
ActiveSheet.ShowAllData

' don't use 655536 as after Excel 2007 there will be gazillions of possible rows...
Range("$A$4:$T$" & activesheet.rows.count).Copy Destination:=workbooks("Reports.xls").range("C1")
workbooks(sSrcBook").close false ' close without saving changes
您可以通过一系列单元格循环,将不同的路径放入源工作簿变量中

希望这对您有所帮助,如果您需要更多帮助,请编辑您的问题或留下评论