Hi,大家好,本專欄將會從零開始和大家用圖文的方式,讓你從零基礎學會VBA!有興趣的小夥伴可以持續關注我,或者在專欄中進行查看自我學習,願與君攜手前行!
在上節已經講述了range和cells的使用方法,也許你已經初步具備識別他們了,而今天要給你分享一個小小的知識點,他就是我們經常要使用的獲得獲得指定行、列中的最後一個非空單元格。當然獲得這個的方法和方式是非常多的,今天就簡單介紹幾個點與你同樂。
Issue-01:使用 VBA 對工作表進行操作時,經常需要定位到指定行或列中最後一個非空單元格, 此時可以使用 Range 對象的 End屬性,在取得單元格對象後便能獲得該單元格的相關屬性,如下代碼所示:
#001 Sub LastRow()
#002 Dim rng As Range
#003 Set rng = Sheet1.Range("A65536").End(xlUp)
#004 MsgBox "A 列中最後一個非空單元格是" & rng.Address(0, 0) _
#005 & ",行號" & rng.Row & ",數值" & rng.Value
#006 Set rng = Nothing
#007 End Sub
這個子過程運行以後,將會使用消息框顯示工作表中 A 列最後非空單元格的地址、行號和數值。有興趣的小夥伴可以試試看喲!
知識點解析:End 屬性其實返回一個 Range 對象,而該對象代表包含源區域的區域尾端的單元格。這個代碼其實等同於我們鍵盤上的按鍵<End+向上鍵>、<End+向下鍵>、<End+向左鍵>或<End+向右鍵>等等操作,這個的語法如下:
expression.End(Direction)
參數 expression 代表是必需的,一個有效的對象,通常情況下是指我們的range對象。
參數 Direction 是可選的,所要移動的方向(上下左右),如下所示:
那麼我們如何獲得最後一個非空的單元格呢?其實只需要修改一下上面的參數即可得到,如下面的代碼所示:
#001 Sub LastColumn()
#002 Dim rng As Range
#003 Set rng = Sheet1.Range("IV1").End(xlToLeft)
#004 MsgBox "第一行中最後一個非空單元格是" & rng.Address(0, 0) _
#005 & ",列號" & rng.Column & ",數值" & rng.Value
#006 Set rng = Nothing
#007 End Sub
代碼解析: LastColumn 過程使用消息框顯示工作表中第一行最後一個非空單元格的地址、列號和 數值,
通常我們用以下幾個方式來獲得非空單元格:
獲得A列最後一個非空單元格
maxRow = Sheets("Sheet1").[A65535].End(xlUp).Row+1maxRow = Sheets("Sheet1").[A1].End(xlDown).Row+1
獲得A行最後一個非空單元格
maxRow = Sheets("Sheet1").[A1].End(xlToRight).Row
maxRow = Sheets("Sheet1").[ XFD1].End(xlToLeft).Row
好啦!快樂的時間總是非常短暫的,又到了和大家說再見的時候,如果大家感覺本文如果對你有所幫助的話,請幫忙轉發點讚,謝謝您能觀看到現在,我們下期再見!
我是Excel教案,關注我持續分享更多的Excel技巧!
如果有不明白的或者不懂的可以在下方留言,我們會一一解答的。