删除Excel行而不隐藏另一个VBA

我有一个相当简单的电子表格应用程序,用一些VBA代码执行简单的行插入和删除,如用户所调用。 这是一个高度格式化的电子表格,供没有Excel使用经验的人使用。 插入和删除的代码很好。

该表使用了15行,并且该点下面的每一行都被隐藏了。 但是,在删除一个完整的行时,每个后面的行按照标准向上移动,留下一个“新的”,空白行15.我希望这个行为被否定,并且空行不会出现。

可能很简单? 有什么办法来防止这种行为,如果这是不可能的,是否有任何提示,以抓住一张表的“最后一个可见”行的身份,以便手动隐藏它?

干杯

你可能需要根据你的需要来调整,但是这应该起作用。

Sub GetLastVisibleCell() Dim rng As Range Set rng = ActiveSheet.Columns(1).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeLastCell) If rng = vbNullString Then rng.EntireRow.Hidden = True End Sub 

而不是删除一行,而是清除它:

msdn给出了一个例子

 Worksheets("Sheet1").Range("A1:G37").ClearContents 

最后一个可见行也可以用结束(xlup)语法返回。 假设您的列A有每个非空行的数据。

 Sub GetLastVisibleCell() Dim rng As Range Set rng = cells(rows.count,1).end(xlup) rng.EntireRow.Hidden = True End Sub