0

我有一个具有固定数量可见行的 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) 中的错误的更多信息?

4

2 回答 2

2

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

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

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

于 2013-10-24T14:05:21.200 回答
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

谢谢!

于 2013-10-24T14:23:51.843 回答