vba 错误无法设置范围类的隐藏属性 错误 1004

Posted

技术标签:

【中文标题】vba 错误无法设置范围类的隐藏属性 错误 1004【英文标题】:vba error unable to set the hidden property of the range class Error 1004 【发布时间】:2019-11-07 14:26:19 【问题描述】:

当您从表单获得控制时,没有问题 但如果你从工作表本身获得它,那么它实际上可以工作,但出现错误:1004 所以只需使用(On Error Resume Next)

Private Sub ComboBox1_Change()
Dim wsMon As Worksheet
Set wsMon = ThisWorkbook.Worksheets("Montag")
On Error Resume Next
Select Case ComboBox1.ListIndex
       Case 0
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = True
            xHide (True)
       Case 1
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = False
            wsMon.Rows("19:25").EntireRow.Hidden = True
            xHide (True)
       Case 2
            xHide (False)
            wsMon.Rows("12:25").EntireRow.Hidden = False
            xHide (True)
End Select

End Sub

xHide 是一个布尔函数: 真的

Application.ScreenUpdating = True
Application.DisplayAlerts = True

或错误

Application.ScreenUpdating = False
Application.DisplayAlerts = False

【问题讨论】:

哪一行给出了错误?另外,Worksheet.Rows.EntireRow 不是完全不必要的冗余吗? (使用On Error Resume Next 通常应该是您最后尝试的事情,当完全不可避免时) 它对我有用,没有错误。 【参考方案1】:

如果我运行这个并且我的工作表受密码保护,我会得到同样的错误。尝试添加此行(如果需要,您可以重新保护它):

wksMain.Unprotect (conPassword)

另外,你不应该需要 on error resume next,如果你确实使用它,你应该在超过你需要的代码时添加 Go To 0。

【讨论】:

以上是关于vba 错误无法设置范围类的隐藏属性 错误 1004的主要内容,如果未能解决你的问题,请参考以下文章

VBA 错误 1004 - 范围类的选择方法失败

错误 1004:范围类的自动填充方法失败 vba excel 2010

Excel VBA 2016 - 试图找到复选框的名称,无法获取值属性错误

VBA中的worksheetfunction.match属性很难

“ Range类的VBA自动过滤器方法失败”,今天开始工作的代码出现错误

匹配生成“无法获取 WorksheetFunction 类的匹配属性”