有了这个,可能很容易解决问题,但没有任何编程技能,我很难破解......
我用一个按钮,一个分配给它的宏制作了一个excel文件。
应该做什么:
到目前为止,我得到了这个:
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
答案 0 :(得分: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编辑器顶部的“插入”菜单插入一个新模块。