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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值