将每个工作表从一个Excel文件复制到另一个
有了这个,可能很容易解决的问题,但没有任何编程技巧,我很难破解… … –
我用一个button,一个macros分配给它做了一个excel文件。
它应该做什么:
- 打开另一个xls文件,用户可以在硬盘上进行search
- 从打开的文件复制每张纸
- 将其粘贴到原始文件并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编辑器顶部的“插入”菜单来插入新模块。