【发布时间】:2018-05-30 17:42:09
【问题描述】:
我有一个包含多个工作表的工作簿,我想将工作簿中的两个工作表保存到另一个新工作簿。
我尝试了以下代码,但它只将我的工作簿中的一张工作表复制到另一张工作表。
谁能告诉我哪里出错了?
Sub save()
Dim myworksheets() As String
Dim newWB As Workbook
Dim CurrWB As Workbook
Dim i As Integer
Dim path1, Path2 As String
path1 = ThisWorkbook.Path
Path2 = path1 & "\Saved Files\SW\"
Set CurrWB = ThisWorkbook
myworksheets = Split("BW", "Reason")
For i = LBound(myworksheets) To UBound(myworksheets)
Set newWB = Workbooks.Add
CurrWB.Sheets(Trim(myworksheets(i))).Copy Before:=newWB.Sheets(1)
newWB.SaveAs filename:=Path2 & Format(Now(), "WW") & " CW " & myworksheets(i) & ".xlsx"
newWB.Close SaveChanges:=True
Next i
Application.ScreenUpdating = False
MsgBox ("File Saved")
End Sub
【问题讨论】:
-
将这一行
Set newWB = Workbooks.Add移到 For 循环之前。 -
您希望看到 Split("BW", "Reason") 发生什么?分隔符不存在,所以你肯定会有一个项目的数组吗?为什么不简单地说 Array(...)