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

时间:2013-10-24 13:56:49

标签: excel vba

我有一张Excel工作表,其中包含固定数量的可见行。我想写一个宏来在最后一个可见行之后插入一行。

为此,我首先要确定当前最后一个可见行是什么。我试着编写以下内容但是出现了编译错误。我不太了解VB,所以我在While循环中做错了。

感谢。

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


MsgBox (rowNumber)

另外,在哪里可以在Excel的宏编辑器(VBA 7.0)中找到有关错误的更多信息?

2 个答案:

答案 0 :(得分:2)

我认为这样做不会那样 尝试检查这种方法以避免编译错误:

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

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

答案 1 :(得分:0)

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

我还必须做Kim建议的事情:Range("A" & rowNumber).EntireRow.Hidden而不是Row(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

谢谢!