我有一个主Excel工作簿,我想创建一个宏来从7个Excel文件中导入指定范围的数据 . 除实际数据外,这些文件的结构都相同 . 使用导入宏/按钮我基本上想要获得一个打开文件对话框,选择所有文件并让宏将范围内的数据逐个添加到主文件中 . 我从这里的另一篇文章中获取了一些灵感,这使得它适用于单个文件:要调整的代码必须能够选择7个文件并逐个动态地将其添加到目标范围 .
Sub getData()
Dim slaveBook As Workbook
Dim filter As String
Dim caption As String
Dim slaveFilename As String
Dim slaveWorkbook As Workbook
Dim targetWorkbook As Workbook
Set targetWorkbook = Application.ActiveWorkbook
filter = "Team file (*.xlsm),*.xlsm"
caption = "Please select the team file"
slaveFilename = Application.GetOpenFilename(filter, , caption)
Set slaveWorkbook = Application.Workbooks.Open(slaveFilename)
Dim targetSheet As Worksheet
Set targetSheet = targetWorkbook.Worksheets("MASTER")
Dim sourceSheet As Worksheet
Set sourceSheet = slaveWorkbook.Worksheets("Interface")
targetSheet.Range("B5", "J8").Value = sourceSheet.Range("B5", "J8").Value
slaveWorkbook.Close
End Sub
1 回答
Updated - 更改了代码,现在它应该将所有信息保存到彼此下面的"MASTER"表单中 . 显然,这是一种非常简单的方法,并且限制您在代码结束之前只打开7个文件 . 如果你想在未来添加更多,你可以简单地扩展数组和范围代码或修改范围代码以寻找最后一个可用于粘贴数据的行(
LastRow = Range("J65536").End(xlUp).Row
)是一个很好的起点