0

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

我用一个按钮制作了一个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
4

1 回答 1

2

您的示例代码是正确的,查看录制的宏代码应该已经向您展示了如何使用该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 编辑器顶部的“插入”菜单来插入一个新模块。

在此处输入图像描述

于 2013-04-11T12:59:38.033 回答