【问题标题】:Saving sheets in excel to another excel将excel中的工作表保存到另一个excel
【发布时间】: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(...)

标签: vba excel


【解决方案1】:

将此行 myworksheets = Split("BW", "Reason") 更改为 myworksheets = Split("BW,Reason", ",")

【讨论】:

  • 现在改变这个我只能看到一张纸保存.. 不是两张
  • 你需要修改你的循环。请检查标记的答案。
【解决方案2】:

我认为您的问题在循环中。您正在为每个工作表创建一个新工作簿,然后将工作表粘贴到其中,保存并关闭。

移动新工作簿的创建和保存,关闭循环应该可以解决您的问题。

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")
    Set newWB = Workbooks.Add
    For i = LBound(myworksheets) To UBound(myworksheets)
        CurrWB.Sheets(Trim(myworksheets(i))).Copy Before:=newWB.Sheets(1)
    Next i
    newWB.SaveAs Filename:=Path2 & Format(Now(), "WW") & " CW " & myworksheets(i) & ".xlsx"
    newWB.Close SaveChanges:=True
    Application.ScreenUpdating = True
    MsgBox ("File Saved")
 End Sub

【讨论】:

    【解决方案3】:

    修改这两行:

    Dim myworksheets() As String
    myworksheets = Split("BW", "Reason")
    

    Dim myworksheets() 
    myworksheets = Array("BW", "Reason")
    

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 2019-05-02
      • 2011-11-11
      • 1970-01-01
      相关资源
      最近更新 更多