Excel无法隐藏多于53行

这是代码:

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then If Range("A2").Value = "Select" Then ActiveSheet.Rows("5:61").Select Selection.EntireRow.Hidden = True End If End If End Sub 

出于某种原因,如果范围高于“5:58”,我得到一个运行时错误“1004”。

你使用的是哪个版本的Excel? 我在Excel 2007上试过你的代码,它可以工作。 我删除了select线,并尝试这种方式,这也适用。

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then If Range("A2").Value = "Select" Then ActiveSheet.Rows("5:61").EntireRow.Hidden = True End If End If End Sub 

此代码在Excel 2013中工作,不幸的是我没有其他版本。 由于我不是引用活跃工作簿和活动工作表以及使用select的粉丝,你也可以使用

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then If Range("A2").Value = "Select" Then Target.Parent.Rows("5:61").EntireRow.Hidden = True End If End If End Sub 

Target.Parent是指包含范围的工作表。

该代码是正确的,工作。

这个问题是由于我必须隐藏很多行/列造成的。 Excel只允许你隐藏有限的数量。

简单的解决你的问题:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then If Range("A2").Value = "Select" Then Dim Rg as Range For each Rg in Target.Parent.Rows("5:61") 'not sure if you need to add a .rows here, just try Rg.EntireRow.Hidden = True next Rg End If End If End Sub 

这样一次只能隐藏一行。