如何使用 VBA 从多个 Excel 工作簿中选择特定数据,并将它们粘贴到主 Excel 文件的不同工作表中?

问题描述

我目前有 4 个目标工作簿和一个单独的主 Excel 工作簿。在主 Excel 工作簿中,我目前已经创建了 4 个按钮和 4 个工作表(工作表 1、工作表 2、工作表 3 等)。

每个按钮都分配了一个不同的宏,每个宏都会提示用户选择一个目标工作簿并将数据粘贴到特定工作表中。 (例如,宏 1 将选择目标工作簿 1 并粘贴到工作表 1,宏 2 将选择目标工作簿 2 并粘贴到工作表 2 中,等等)。单个宏的 VBA 代码如下:

Sub Get_Data_From_File()
    Dim FiletoOpen As Variant
    Dim OpenBook As Workbook
    
    Application.ScreenUpdating = False
    FiletoOpen = Application.GetopenFilename(Title:="browse for Sales file & import range",FileFilter:="Excel Files (*.xls*),*xls*")
    
    If FiletoOpen <> False Then
        Set OpenBook = Application.Workbooks.Open(FiletoOpen)
        Set wsIn = OpenBook.Worksheets("Sales balances")
        
        Dim endRow As Long
        endRow = wsIn.Cells(wsIn.Rows.Count,"A").End(xlUp).Row
    
        Dim endColumn As Long
        endColumn = wsIn.Cells("5",wsIn.Columns.Count).End(xlToLeft).Column

        Dim r As Range
        Set r = wsIn.Range(Cells(5,1),Cells(endRow,endColumn))
        r.copy
    
        ThisWorkbook.Worksheets("Sheet 1").Range("A1").PasteSpecial xlPasteValues
        
        OpenBook.Close False
    
    End If
    
    Application.ScreenUpdating = True
End Sub

''' 如何修改代码,以便我只需要 1 个宏来提示用户选择多个目标工作簿,然后执行复制/粘贴到目标工作簿的工作表中?我希望它打开目标工作簿 1,复制数据,将数据粘贴到主工作簿的“工作表 1”中,关闭目标工作簿 1,然后转到目标工作簿 2。

此外,如果目标工作簿比主 Excel 中的现有工作表多,是否可以构建创建新工作表的代码。例如,我目前在 Master Excel 中有 4 个工作表,但如果我从 5 个目标工作簿复制数据,我需要创建一个额外的工作表。

非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)