代码之家  ›  专栏  ›  技术社区  ›  Adam

将每个工作表从一个excel文件复制到另一个excel文件

  •  0
  • Adam  · 技术社区  · 13 年前

    有了这个,可能很容易解决问题,但如果没有任何编程技巧,我很难破解。。。

    我制作了一个excel文件,里面有一个按钮,一个分配给它的宏。

    它应该做什么:

    1. 打开另一个xls文件,用户可以在硬盘上搜索该文件
    2. 从打开的文件中复制每张图纸
    3. 将其粘贴到原始文件,然后关闭从中复制的文件。

    到目前为止,我得到了这个:

    Sub Importfile()
    
    Dim sFile As String
    Dim wb As Workbook
    
    sFile = Application.GetOpenFilename("*.xls,*.xls")
    
    If sFile <> "False" Then
        Set wb = Workbooks.Open(sFile)
    
    
        'Copy and paste code , where I dont know what to do
    
    
    
    
        wb.Close
    End If
    
    End Sub
    
    1 回复  |  直到 12 年前
        1
  •  2
  •   NickSlash    13 年前

    您的示例代码是正确的,查看记录的宏代码应该已经向您展示了如何使用 worksheet.copy 方法使用它,你只需要循环浏览新打开的工作簿中的所有工作表,并将它们复制到原始工作簿中。

    我用过 For Each ,你也可以只是一个普通的 For 或者你喜欢的任何其他类型的循环。

    Sub Importfile()
    
    Dim sFile As String
    Dim wb As Workbook
    Dim ws As Worksheet
    
    sFile = Application.GetOpenFilename("*.xls,*.xls")
    
    If sFile <> "False" Then
        Set wb = Workbooks.Open(sFile)
    
        For Each ws In wb.Worksheets
            ws.Copy before:=ThisWorkbook.Worksheets(1)
        Next ws
    
        wb.Close
    End If
    
    End Sub
    

    宏对我来说很好!请确保您已将代码放置在正确的位置。

    在下图中,“Book1”是您的原始工作表(您正在复制的工作表 )宏代码应插入到“模块”(红色方块)中,并且 橙色方块中的任何一个。如果你没有“模块1”(或任何其他),你需要在vba编辑器顶部的“插入”菜单中插入一个新的模块。

    enter image description here

    推荐文章