我想复制/粘贴所有工作表,包括单元格中的值/公式到另一个新工作簿 .
此代码只复制第一个ws,但不是所有其他的 . 我怎样才能确保所有ws都被复制和粘贴,而无需在vba代码中写入ws中的所有名称?
Sub CopyPaste()
Dim ws As Worksheet, wb As Workbook
Set ws = ActiveSheet
Set wb = Workbooks.Add(xlWBATWorksheet)
ws.Range("A1:G10").Copy
wb.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues
wb.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub
4 回答
所以我假设您将保存第二个工作簿以便命名?因此,只需在下面的路径中添加要保存的路径,现在它也会保留工作表名称 . 我不确定为什么你得到一个调试器错误它对我来说工作正常,尝试这个代码,看看你是否仍然得到它?
您可以尝试如下:
只是快速找你,这似乎做了这个工作:
信用:get digital help
我刚刚删除了
WBN.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
并且它工作正常新工作簿保存为.xlsx文件,但当然我需要它作为.xlsm文件....当我刚刚将它添加到路径中时,它不起作用