![](/img/trans.png)
[英]Function to loop through all worksheets to find value, return worksheet name
[英]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.