Excel – 运行时错误“1004”:无法设置范围类的隐藏属性

我不熟悉脚本,我正在尝试改进现有的macros。 我logging了一个macros来删除重复,并将其添加到调用一些其他函数的主函数,但是当我添加我logging的macros时出现此错误:

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 

一些可能的答案:

  • 您在其中一个选定的单元格中留言
  • 你有一些绘制的对象,不用文字resize
  • 您的工作表受到保护

当您在事件处理程序的第一行上设置一个断点,然后按F8来逐句通过macros,我假设它崩溃在行上:

 Range("A48:A136").EntireRow.Hidden = True 

尝试这个 :)

 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 

这应该为你工作:)