使用VBA确定Microsoft Excel中最后一个可见行

我有一个固定数量的可见行的Excel工作表。 我想写一个macros来插入最后一个可见行之后的行。

为此,我首先要确定当前最后一个可见行是什么。 我试图写下面,但我得到一个编译错误。 我不太了解VB,所以我在While循环中正确地做了错误的事情。

谢谢。

Sub AddRequirementRule() Dim rowNumber As Long rowNumber = 1 While (Not ActiveSheet.Row(rowNumber).Hidden) rowNumber = rowNumber + 1 End While MsgBox (rowNumber) 

在附注中,我可以在哪里find有关Excelmacros编辑器(VBA 7.0)中错误的更多信息?

我认为这不会那样工作。
尝试检查这种方式来避免编译错误:

 While (Not thisworkbook.Sheets(1).range("A" & rowNumber).entirerow.hidden) rowNumber = rowNumber + 1 Wend 

有关错误的更多信息,我build议您使用error handling。 http://www.cpearson.com/excel/errorhandling.htm

我的脚本完全错了。 我不应该用End While而是Wend

我也必须做什么金build议: Range("A" & rowNumber).EntireRow.Hidden而不是Row(rowNumber).HiddenRow(rowNumber).Hidden

这是正确的代码:

 Sub AddRequirementRule() Dim rowNumber As Long rowNumber = 1 While (Not ActiveSheet.Range("A" & rowNumber).EntireRow.Hidden) rowNumber = rowNumber + 1 Wend MsgBox (rowNumber) End Sub 

谢谢!