在excel VBA中隐藏行

在excel VBA中隐藏行,vba,excel,Vba,Excel,我正在尝试使用VBA隐藏行。我有开始行,从那里我必须开始隐藏行。我编写了以下代码: sht.Rows(32 + end_row).Resize(, 65536 - (32 + end_row)).Select Selection.EntireRow.Hidden = True 其中,end\u row是将在我的excel工作表中填充数据的行,而32是将开始填充数据的行的索引。 当我试图运行这段代码时,它给出了一个错误 应用程序定义或对象定义错误 我该如何解决这个问题?最好的解决方法是什么?在本

我正在尝试使用VBA隐藏行。我有开始行,从那里我必须开始隐藏行。我编写了以下代码:

sht.Rows(32 + end_row).Resize(, 65536 - (32 + end_row)).Select
Selection.EntireRow.Hidden = True
其中,
end\u row
是将在我的excel工作表中填充数据的行,而
32
是将开始填充数据的行的索引。 当我试图运行这段代码时,它给出了一个错误

应用程序定义或对象定义错误

我该如何解决这个问题?最好的解决方法是什么?

在本声明中

Resize(, 65536 - (32 + end_row)).Select   
你把行和列弄混了

您的意思可能是调整大小(65536-(32+结束行))。选择

Resize([Rows],[Columns])
Sheet1.Rows.Resize(65536 - (32 + end_row)).EntireRow.Hidden = True
不过写这样的东西要好得多(避免使用
Select

但此代码隐藏了图纸顶部的所有行,并使图纸底部的行可见。我想你是想反过来


这段代码可能会有所帮助。它将隐藏列A中最后一个条目下方的所有空行

Dim sht As Worksheet
Set sht = Sheet1

sht.Range(sht.Cells(sht.Rows.Count, 1), sht.Cells(sht.Rows.Count, 1).End(xlUp).Offset(1)).Rows.Hidden = True

另一种方式可以是:

'Expected sht is a sheet object, else use : ActiveSheet.Rows("32:" & end_row).Hidden = True
sht.Rows("32:" & end_row).Hidden = True

避免使用65535限制

如果
32+end_行
的总和大于Excel版本中的行限制,则会发生错误。让“本地人”窗格可见并单步执行代码?