隐藏excel VBA中的行

我正在尝试使用VBA隐藏行。 我有我必须开始隐藏行的起始行。 我写了下面的代码:

sht.Rows(32 + end_row).Resize(, 65536 - (32 + end_row)).Select Selection.EntireRow.Hidden = True 

其中end_row是数据填充到我的Excel表中的行, 32是数据将从其开始填充的行的索引。 当我试图运行这个代码,它会给出一个错误,

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

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

在这个声明中。

 Resize(, 65536 - (32 + end_row)).Select 

你混合了行和列

你可能是指Resize(65536 - (32 + end_row)).Select

 Resize([Rows],[Columns]) 

写这样的东西好多了(避免使用Select

 Sheet1.Rows.Resize(65536 - (32 + end_row)).EntireRow.Hidden = True 

该代码隐藏了工作表顶部的所有行,并使工作表底部的行保持可见。 我假设你想要这样做。


这段代码可能有帮助。 它将隐藏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限制