繁体   English   中英

运行时错误 1004 “_worksheet” 在所有工作表的循环中途

[英]Runtime error 1004 “_worksheet” midway through loop of all worksheets

我有几个月前编写的以下代码块。 直到今天我尝试运行它时,这对我的所有文件都运行良好。 我有一个新的 excel 文件,我正在使用该文件将系统中的多个数据文件汇集在一起,并将它们提供给前滚摘要。

我的代码很简单,它遍历所有工作表并设置我的字体和视图设置。

但是,当我现在运行文件时,我得到一个

运行时 1004:object '_Worksheet' 的方法 'Range' 失败。

我尝试调试并逐步执行代码,它会在“ws.Select”的第三个选项卡上失败。 如果它们都是工作表,我无法弄清楚为什么该选项卡会出现问题。 我错过了什么吗?


Dim ws As Worksheet

    For Each ws In Worksheets
        ws.Select
        ws.Cells.Font.Name = "Calibri"
        ws.Cells.Font.Size = 11
        ActiveWindow.DisplayGridlines = False
        ActiveWindow.Zoom = 100
    
    Next ws
    
End Sub

确保不要在隐藏表上运行ws.Select

    Dim ws As Worksheet     
    For Each ws In Worksheets
        If ws.Visible = xlSheetVisible Then 'make sure to exclude hidden sheets
            ws.Select
            ws.Cells.Font.Name = "Calibri"
            ws.Cells.Font.Size = 11
            ActiveWindow.DisplayGridlines = False
            ActiveWindow.Zoom = 100
        End If
    Next ws    
End Sub

或者使它们可见,进行更改并恢复原始可见性 state:

    Dim ws As Worksheet        
    For Each ws In Worksheets
        Dim OriginalVisibleState As Long
        OriginalVisibleState = ws.Visible
        ws.Visible = xlSheetVisible 'make it visible

        ws.Select
        ws.Cells.Font.Name = "Calibri"
        ws.Cells.Font.Size = 11
        ActiveWindow.DisplayGridlines = False
        ActiveWindow.Zoom = 100
        
        ws.Visible = OriginalVisibleState 'hide it if it was hidden before (revert to original visibility state)
    Next ws    
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM