Excel 在打开的工作簿中循环

Excel 在打开的工作簿中循环,excel,vba,Excel,Vba,我已经设法得到一个代码,它可以打开文件夹中存在的所有文件。现在我想在这些文件上逐个运行一个宏(称为donemovementReport),就像它在上运行一样 我先保存文件,然后运行下一个 宏donemovementreport将这些打开的图纸中的所有数据粘贴到模板中。我想保存此打印件,而不是包含实际数据的已打开工作簿 有人有什么想法吗 Sub OpenAllWorkbooks() Set destWB = ActiveWorkbook Dim DestCell As Range FileName

我已经设法得到一个代码,它可以打开文件夹中存在的所有文件。现在我想在这些文件上逐个运行一个宏(称为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

如果我正确理解输入,您需要遍历所有打开的工作簿。这可以通过使用
工作簿
集合来实现。使用以下代码:

Dim wb As Workbook

For Each wb In Workbooks

    wb.AcceptAllChanges
    Call donemovementReport

Next wb
根据需要修改
之间的代码,以便…下一步
,或提供更多输入

阅读有关在VBA中引用工作簿的更多信息:(上面的代码是此处列出的第10项中的第3项)