的第一行號碼我想找出page1的第一行號碼。Excel VBA:如何找到Page1
使用下面的代碼可以找到1
ThisWorkbook.Worksheets("Sheet1").HPageBreaks(1).Location.Row - 1
頁的最後一行數字,但我一定要找到第一頁的第一行編號。
有沒有人有想法呢?
非常感謝
的第一行號碼我想找出page1的第一行號碼。Excel VBA:如何找到Page1
使用下面的代碼可以找到1
ThisWorkbook.Worksheets("Sheet1").HPageBreaks(1).Location.Row - 1
頁的最後一行數字,但我一定要找到第一頁的第一行編號。
有沒有人有想法呢?
非常感謝
你可以嘗試用Sheets().PageSetup.PrintArea
財產。這將返回所有頁面的範圍地址。因此,你得到的東西是這樣的:
$G$12:$P$31 << for continuous range/pages >> see 1st screen shot below
$G$12:$P$31;$B$5:$E$20;$R$5:$U$20 << for non-continuous ranges/pages >> see 2nd screen shot below
1日圖片:
第二個畫面:
上面的第一個行號每次都是第一個行號在第一頁上。爲了得到它,你可以嘗試用以下方法解決:
firstRow = Range(Replace(ThisWorkbook.Worksheets("Sheet1").PageSetup.PrintArea, ";", ",")).Row
或以下解決方案:
firstRow = Split(Split(ThisWorkbook.Worksheets("Sheet1").PageSetup.PrintArea, ":")(0),"$")(2)
附加說明
你從.PrintArea property
得到
範圍的地址採用半-colon (;)
來分離非連續範圍。如果我們想在上面的第一個解決方案中使用它,我們需要將它轉換爲逗號(,)
。
這將讓你在第一頁的第一行:
Sub dural()
Dim nRow As Long, s As String
Dim r As Range
s = Sheets("Sheet1").PageSetup.PrintArea
Set r = Range(s)
nRow = r(1).Row
MsgBox nRow
End Sub
您的解決方案中有一個技巧。如果您的頁面不是連續的範圍,您將使用分號(;)分隔地址,這是分隔地址範圍在「範圍」中不可接受的。因此,您需要用逗號(,)替換它,就像我在答案中所做的那樣。 –
感謝您的信息!....................... –
以下是沒有編碼我不得不承認的最好的方式。但是我認爲,閱讀起來很容易,而且它能完成這項工作(如果我理解這個問題是正確的)。
Sub runningThroughSheets()
Dim wsht As Worksheet
Dim wholeRow As Range
Dim counter As Integer
Dim stopSearch As Boolean
Set wsht = Application.ActiveWorkbook.Worksheets("Sheet1")
counter = 0
stopSearch = False
Do While stopSearch = False
If Range("A1").Offset(counter, 0).EntireRow.Hidden = False Then
stopSearch = True
End If
counter = counter + 1
Loop
MsgBox counter
End Sub
您可以使用SpecialCells獲取第一個可見行。
下面的代碼將返回的地址的ActiveSheet
msgbox ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Rows(1).Address
第一個可見行,或者如果你只是想行號
msgbox ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).Rows(1).Row
好了,第一行數通常爲1 ;)但正如我猜你是指第一個非空行,我會建議循環遍歷例如列A直到找到非空單元格。不會那麼耗時(除非您的工作表從第1000行開始)。 – sina
僅在我的手機上,'.Location.Address'顯示範圍? – PatricK
嗨新浪,在我的Excel應用程序中,頁面1的第一行數是不同的。有時候是1,但有時候是100。(第1〜99行被隱藏)如何判斷?謝謝。 –