oldman 發問時間: 電腦與網際網路軟體 · 8 年前

要如何把一個工作簿中的各個工作表分開存檔?

請問一下有沒有更聰明的方法可以作以下這件事

一個工作簿內含3個工作表,需將此3個工作表,分別存成3個工作簿並以原工作表名為檔名。

我用VBA寫了一段程式是可用,但不知有沒有更簡單的方法(如Excel有無內建此功能?)

Sub Divider()

Dim CNT%, i%, WSname$

CNT = ThisWorkbook.Worksheets.Count

For i = 1 To CNT

With ThisWorkbook.Worksheets(i)

WSname = .Name

.Copy

End With

With Workbooks(3)

.SaveAs Filename:="E:\123\" & WSname & ".xls"

.Close

End With

Next i

End Sub

1 個解答

評分
  • Daniel
    Lv 7
    8 年前
    最佳解答

    Sub Divider()

    Dim sht As Worksheet, WSname$

    On Error Resume Next

    For Each sht In Worksheets

    WSname = sht.Name

    sht.Copy

    ActiveWorkbook.SaveAs Filename:="E:\123\" & WSname & ".xls"

    ActiveWindow.Close

    Next sht

    End Sub

    試試看!

    2011-08-04 09:44:25 補充:

    再簡化一點, WSname 也不要用了:

    Sub Divider()

    Dim sht As Worksheet

    On Error Resume Next

    For Each sht In Worksheets

    sht.Copy

    ActiveWorkbook.SaveAs Filename:="E:\123\" & sht.Name & ".xls"

    ActiveWindow.Close

    Next sht

    End Sub

還有問題?馬上發問,尋求解答。