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
这样一次只能隐藏一行。