【问题标题】:vba error unable to set the hidden property of the range class Error 1004vba 错误无法设置范围类的隐藏属性 错误 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 通常应该是您最后尝试的事情,当完全不可避免时)
  • 它对我有用,没有错误。

标签: excel vba ms-access excel-formula


【解决方案1】:

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

wksMain.Unprotect (conPassword)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多