2013-10-24 86 views
0

我有一個包含固定數量可見行的Excel工作表。我想寫一個宏在最後一個可見行之後插入一行。使用VBA確定Microsoft 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)中錯誤的更多信息?

+0

你的意思是最後一個包含數據的可見行嗎?通常在工作表底部有許多可見的空白行。 –

回答

2

我認爲它不會那樣工作。
嘗試檢查,這樣既避免了編譯錯誤:

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

有關錯誤的更多信息,我建議你使用錯誤處理。 http://www.cpearson.com/excel/errorhandling.htm

+0

我需要使用ActiveSheet,因爲我不知道我在哪張紙上。 –

+0

它也將與ActiveSheet一起使用。 – Trace

+0

雖然您應該一定知道您正在使用哪張工作表,以及您當前正在處理的工作表對象,因此請避免Activesheet和命名工作表對象。但是,那是另一天要討論的。 – Trace

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 

謝謝!

+0

哎呀,的確,我已經在我的代碼中調整了這一點。它是Do While ... loop,Do ... Loop Until或While ... Wend。 – Trace

相關問題