我设法获得了一个代码,可以打开文件夹中存在的所有文件。现在我想在这些文件上一个一个地运行一个宏(称为 donemovementReport),就像它在一个文件上运行一样,我保存文件然后在下一个文件上运行。
宏 donemovementreport 将这些打开的工作表中的所有数据粘贴到模板中。我想保存这个模板而不是带有实际数据的打开的工作簿。
有人有什么想法吗?
Sub OpenAllWorkbooks()
Set destWB = ActiveWorkbook
Dim DestCell As Range
FileNames = Application.GetOpenFilename( _
filefilter:="Excel Files (*.csv*),*.csv*", _
Title:="Select the workbooks to load.", MultiSelect:=True)
If IsArray(FileNames) = False Then
If FileNames = False Then
Exit Sub
End If
End If
For n = LBound(FileNames) To UBound(FileNames)
Set wb = Workbooks.Open(fileName:=FileNames(n), ReadOnly:=True)
Next n
'Dim i As Integer
'i = ActiveWorkbook.AcceptAllChanges
'For i = 1 To ActiveWorkbook
Call donemovementReport
'Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
如果我正确理解输入,您需要遍历所有打开的工作簿。这可以使用Workbooks集合来实现。使用这段代码:
Dim wb As Workbook
For Each wb In Workbooks
wb.AcceptAllChanges
Call donemovementReport
Next wb
Run Code Online (Sandbox Code Playgroud)
根据需要修改代码For...Next或提供更多输入。
阅读有关在 VBA 中引用工作簿的更多信息:http : //www.techrepublic.com/blog/10things/10-ways-to-reference-excel-workbooks-and-sheets-using-vba/967(上面的代码是项目那里列出了 10 个中的3个)。
| 归档时间: |
|
| 查看次数: |
12385 次 |
| 最近记录: |