1. 程式人生 > >VBA異常--執行時錯誤1004(將一個工作簿拆分多個工作表)

VBA異常--執行時錯誤1004(將一個工作簿拆分多個工作表)

概述:

打算將工作簿拆分多個工作表,丟擲異常


原因是這個工作簿中有隱藏的工作表,對於Copy操作,它是不能複製隱藏的工作表的,但是Worksheets是所有工作表的集合(自然有隱藏工作表)

最後的解決辦法就是取消隱藏所有工作表,或者進行判斷如果是隱藏工作表就過濾掉

if sht.Visible  = True then    

執行復制動作

End if 

Sub saveToFile()

    '把各個工作表以單獨的工作簿檔案儲存在本工作簿所在資料夾下的“班級成績表”資料夾中
    Application.ScreenUpdating = False            '取消螢幕更新
    Dim folder As String
    folder = ThisWorkbook.Path & "\班級成績表"
    '如果資料夾不存在,新建資料夾
    If Len(Dir(folder, vbDirectory)) = 0 Then MkDir folder
    Dim sht As Worksheet
    For Each sht In Worksheets
       If sht.Visible = True Then
          sht.Copy
          ActiveWorkbook.SaveAs folder & "\" & sht.Name & ".xls"
          ActiveWorkbook.Close
        End If
    Next
    Application.ScreenUpdating = True            '開啟螢幕更新
End Sub