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

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

我用一个button,一个macros分配给它做了一个excel文件。

它应该做什么:

  1. 打开另一个xls文件,用户可以在硬盘上进行search
  2. 从打开的文件复制每张纸
  3. 将其粘贴到原始文件并closures从中复制的文件。

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

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 

你的示例代码是正确的,看着logging的macros代码应该告诉你如何使用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 

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

在下面的图片“Book1”是您的原始工作表(您正在复制工作表)的macros代码应插入到“模块”(红色方块),而不是在橙色方块中的任何一个。 如果您没有“模块1”(或任何其他),则需要通过查看vba编辑器顶部的“插入”菜单来插入新模块。

在这里输入图像说明