我很累,真的,试图找到解决方案。我运行Excel 2013.当我物理输入代码时:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
If Not ws.Name = "sheet1" Then ws.Visible = xlSheetVeryHidden
Next ws
End Sub
我得到“如果不是ws.Name ......等”,VBA实际上会给出下拉菜单,这告诉我我工作正常。但是,一旦我运行代码(打开工作簿),我得到一个错误1004,方法'可见'...
相信我,我已经搜索过,发现了一两个轻微的模式,但没有快乐。
答案 0 :(得分:0)
可能的原因是此时您的工作簿中只有一个可见工作表,并且其名称不是 sheet1 。
每个Excel文件必须至少有一个可见工作表。因此,如果您尝试使用此代码隐藏唯一可见的工作表:
ws.Visible = xlSheetVeryHidden
Excel抛出错误:运行时错误'1004':对象'_Worksheet'的方法'可见'失败
请注意,使用当前代码时,也会隐藏名为 Sheet1 的工作表,因为您的比较区分大小写。如果您想忽略字母大小写,可以使用以下代码:
If StrComp(ws.Name, "sheet1", vbTextCompare) Then ws.Visible = xlSheetVeryHidden