如何解决所有工作表循环中途发生运行时错误1004“ _worksheet”
我有几个月前写的以下代码块。直到今天我尝试运行它时,我的所有文件都可以正常工作。我有一个正在使用的新的excel文件,该文件将系统中的多个数据文件汇总在一起,并将其提供给前滚摘要。
我的代码很简单,它遍历所有工作表并设置字体和视图设置。
但是,当我现在运行文件时,我得到一个
运行时1004:对象'_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
或者使它们可见,进行更改并还原原始可见性状态:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。