我是脚本新手,我正在尝试改进现有的宏。我录制了一个宏来删除重复并将其添加到Main函数中,该函数调用其他函数,但是当我添加我记录的宏时,我收到此错误:
Run-time error '1004': Unable to set the hidden property of the range class
代码看起来像
Private Sub Worksheet_Change(ByVal Target As Range)
Dim changed As Range
Set changed = Intersect(Target, Range("J15"))
If Not changed Is Nothing Then
Range("A48:A136").EntireRow.Hidden = True
Select Case Target.Value
Case "Agriculture"
Range("A48:A96").EntireRow.Hidden = False
Case "Commercial"
Range("A97:A136").EntireRow.Hidden = False
Case "MDP"
Range("A48:A61").EntireRow.Hidden = False
End Select
Range("J15").Select
End If
End Sub
答案 0 :(得分:7)
一些可能的答案:
当你在事件处理程序的第一行设置断点,然后按F8逐步执行宏时,我假设它在行上崩溃了:
Range("A48:A136").EntireRow.Hidden = True
答案 1 :(得分:0)
试试这个:)
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.Unprotect "password_here"
Dim changed As Range
Set changed = Intersect(Target, Range("J15"))
If Not changed Is Nothing Then
Range("A48:A136").EntireRow.Hidden = True
Select Case Target.Value
Case "Agriculture"
Range("A48:A96").EntireRow.Hidden = False
Case "Commercial"
Range("A97:A136").EntireRow.Hidden = False
Case "MDP"
Range("A48:A61").EntireRow.Hidden = False
End Select
Range("J15").Select
End If
ActiveWorkbook.Protect "password_here"
End Sub
这应该对你有用:)
答案 2 :(得分:0)
当人们说“您在一个选定的单元格中有评论”时,请记住评论可以在不同的列中。
如果评论框位于您要隐藏的列上(例如,如果您将每一列隐藏在右侧,而您在完全不同的列中有评论),这就是您将得到的错误。< /p>
如果您尝试手动隐藏该列,您会得到一个不同的令人困惑的错误,类似于“隐藏此列会将对象从工作表中推出。”
几列上方的评论框是对象。
^ 这将为我节省大约 40 分钟的调试时间。