隐藏excel VBA中的行

时间:2013-11-06 10:08:30

标签: excel vba excel-vba

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

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

其中end_row是我的Excel工作表中填充数据的行,而32是数据开始填充的行的索引。 当我尝试运行此代码时,它会出错,

  

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

如何解决此问题以及最佳方法应该是什么?

2 个答案:

答案 0 :(得分:2)

在本声明中。

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

答案 1 :(得分:0)

另一种方式可能是:

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

避免使用65535限制