如何獲得指定行、列中最後一個非空單元格,其實是踏破鐵鞋無覓處

2020-12-17 Excel教案

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技巧!

如果有不明白的或者不懂的可以在下方留言,我們會一一解答的。

相關焦點

  • EXCEL中如何動態地引用某列最後一個單元格
    比如下面的實例:在SHEET2中的B1單元格中需要引用表SHEET1中A列的最後一個單元格中的數值。但是,SHEET1中A列的最後一個單元格的位置是不確定,隨時會增加行數,當有變化時要求在SHEET2中的B1單元格也隨之變化。
  • Excel返回第一個與所有非空單元格及統計數量,把空單元格替換為0
    當 Excel 表格中某一列只有一個非空單元格,需要把它的值返回到另一個單元格;這種情況通常要用公式實現;還有一種情況,某一列既有非空單元格又有空單元格,需要把所有非空單元格集中到一起,即要一次返回多個值;這種情況可以用高級篩選實現。
  • EXCEL之VBA技巧-快速定位選擇指定條件的單元格、行、列,區域
    比如批量刪除空白單元格所有行,把空白單元格統一設置值為0,清除指定區域上的公式、文本、數值等。'已使用區域最後一行整列,包括隱藏列ActiveSheet.usedrange.ColumnDifferences(Comparison:=ActiveSheet.Range("B6")).select'選擇活動工作表上已使用區域內所有和單元格B6內容不一樣的單元格
  • Excel定位指定單元格必備的5個技巧,絕對的乾貨哦
    我們在編輯工作表的時候,經常會遇到一份Excel表格數據比較大,一張表由幾萬行,幾百列組成。這個時候,如果想要找到指定的某個單元格,比如第4列(即D列)第303行,這個時候無論用滑鼠拖滾動條,還是用鍵盤上的翻頁鍵,都比較麻煩。那是不是有更簡單的辦法可以快速定位到這個單元格呢?
  • EXCEL之VBA 從指定列最後有內容的單元格後面連續插入新內容
    示例一:此方法前提是指定的列至少有一個有內容的單元格,比如表頭,如果該列沒有使用的單元格時,會從第二列開始,因為沒有已經使用的單元格時,END會定位到第一個單元格,OFFSET設置了向下偏移了一行,所以會從第二行開始
  • 如何在 Excel 二維表中橫向查找最晚更新的非空值?
    有讀者遇到這麼個問題:有一個二維表,其中的單元格並未全部填充滿,如何根據行標題,向右查找出最新的值?,則連續向右填充至最新的狀態如果之後職級無更新,則留空不需要再填根據 H2 單元格中填入的姓名,在 I2 單元格查找出該員工的最新職級。
  • 查找Excel最後一個非空單元格的值,你會嗎?
    在實際工作中,我們總是會遇到一些奇奇怪怪的要求,比如查找Excel最後一個非空單元格的值,假如是你會如何操作呢?本期與大家分享相應的技巧。這裡我們分三種情況情況來處理:第一種:在純數字中查找最後一個非空單元格這裡我們使用公式=LOOKUP(9E+307,B15:J15)
  • 快速對行、列、單元格進行操作
    Excel2003及以下版本最大支持65536行,256列,而Excel2007及以上版本最大支持1048576行,16384列。Excel的單元格定義是列標加行標。舉個例子,A1單元格,其中A為列標,1為行標,代表第一行第一列的單元格。 今天我們就來學習如何對行、列、單元格進行快速操作。
  • Excel拉取自動跳過空白單元格,跳過去的不一定是坑,也可能是空
    函數解密本期重點函數:1.INDEX函數:INDEX(array,row_num,column_num)返回數組中指定的單元格或單元格數組的數值。INDEX函數簡單了解一下,就是(區域,行值,列值),在一個區域內,通過行值和列值來獲取某個需要的值。INDEX函數是獲取函數,是我們嵌套函數中,最為常見的,也是使用率較高的一個函數,和一些函數嵌套可以變化出,很多實用性的作用。學好INDEX可以事半功倍。
  • 快速刪除表格中的空白行、空白列和空白單元格
    由於各種各樣的原因,表格中出現了一些多餘的空白行/空白列/空白單元格,怎樣快速刪除這些空白呢?至少有4種方法,很多人也分享過,但是這些方法都適用於什麼情況呢?首先添加輔助列,並輸入序號,然後按照原始數據排序,這樣原始數據空白行就會顯示在最後,刪除掉這些行,再按照輔助列排序,即可恢復原有的順序。添加輔助列序號時,有個小技巧:首先按「Ctrl + End」查看數據最後一行是第幾行(本例為172),接著使用自動填充序列,快速添加序號。
  • 如何在CSS中填充:在任何HTML元素中,例如表空單元格
    誰得到安寧斜線主題並不意味著它是有限的表中的單元格,但很容易理解為利用例如,在本文中被描述為的「怎樣畫一條對角線,在表格中的空單元格。」一個例子 可以僅為空單元格進行裝飾:如何編寫空偽類首先,我們將介紹一種方法來僅裝飾「空單元」,其單元格內容在表(表)中沒有任何內容。
  • Excel中如何按照合併的單元格區域求平均值
    最近,一些朋友留言向我反映,說是Excel表格中合併了單元格,就不會計算平均值了。例如下圖是一個各地區員工按月完成工作的數據表格,其中有些單元格是合併了的,我們要計算出各大地區的平均值。③注意到華東所對應的公式,=AVERAGE(OFFSET(D8,0,0,MATCH("*",A9:A18,0),1)),其中的MATCH("*",A9:A18,0)是要在區域中找到一個文本內容,而這個範圍目前全部是空值
  • 單元格區域的整行或整列擴展(Entire Rows and Columns)
    大家可以非常容易的掌握相關的知識,這套教程面向初學人員,共三冊,十七章,都是我們在利用EXCEL工作過程中需要掌握的知識點,希望大家能掌握利用。第七節 單元格區域的整行或整列擴展(Entire Rows and Columns)大家好,我們在上節講解了用Resize屬性來調整單元格區域的大小,這講我們講解單元格的整行或整列的擴展方法。
  • 為什麼表格無法插入行、單元格範圍選取整列時公式出錯?原因是
    實際上提示已經說得非常清楚:Microsoft Excel 無法插入新的單元格,因為這樣做會擠掉工作表末尾的非空單元格。這些單元格可能顯示為空,但具有空白值、某些格式或公式。請刪除足夠的行或列以留出空間放置您想要插入的單元格,然後再試。
  • Excel表格如何將多列內容複製粘貼到一個單元格中
    #職場excel小技巧#在使用Excel表格的時候,經常碰到老闆提的各種各樣具有挑戰性的要求,比如今天教程要介紹的,如果老闆要你將Excel表格中多列的數據內容放置在一個指定的單元格中需要實現將十行A列中的單元格數據(黃色填充單元格區域數據)都放置到A12單元格中(綠色填充單元格),首先需要複製黃色區域數據。單擊菜單欄開始項下剪貼板功能區中的展開按鈕。雙擊A12單元格(綠色填充單元格),然後單擊剪貼板中的全部粘貼按鈕即可。
  • Excel VBA End屬性獲取指定列非空單元格首尾行號
    #005 Range("A1").Value = "" #006 Set helloRange = ActiveSheet.UsedRange '指定任意的單元格區域
  • 測評| DESCENTE迪桑特DELTA TRI OP 踏破「鐵」鞋無覓處 得來不再...
    現在有一雙帶著專業基因的「鐵」鞋擺在眼前,它讓收穫勝利、取得進步這件事,不再那麼費工夫。文/Charlie 圖/網絡對於跑者們來說,大部分的訓練都不會太輕鬆。我們會在跑步過程中遇到各種各樣的困難情況,最常見的就是跑到後半程出現雙腿乏力,肌肉酸痛的情況。尤其是在受疫情影響的過去幾個月裡,跑者們幾乎都處於停訓狀態。
  • 測評 | DESCENTE迪桑特DELTA TRI OP 踏破「鐵」鞋無覓處 得來不再費工夫
    如何幫助跑者高質量地完成一個10公裡(訓練&競賽),尤其當跑者出現疲勞現象時如何給予他們最大限度的助力?這是日本專業運動品牌DESCENTE迪桑特研發DELTA TRI OP這雙競速跑鞋的初衷。
  • VBA中單元格中引用方法,誰是君來誰是臣,其實是烏鴉落進鳳凰群
    有興趣的小夥伴可以持續關注我,或者在專欄中進行查看自我學習,願與君攜手前行!在上節已經講述了range和cells的使用方法,其實這個range的擴展使用方法還有很多,現在一一為您分享!Part-04使用 Union 方法控制單元格區域在操縱單元格區域的時候,我們可以使用 Union 方法可以將多個非連續區域連接起來成為一個區域,從而可以實現對多個非連續區域一起進行操作,如下面的代碼所示。
  • excel中的合併單元格問題,這裡一次性給你講清楚
    在excel表格中,除了最後總合計之外,是不能存在合併單元格的,因為合併單元格在數據的分析與處理中很容易造成錯誤。但是有很多人為了視覺效果非要加一些合併單元格,比如下圖中,遇到這種情況如何把合併單元格轉換為普通區域或者對合併單元格進行篩選、計數、求和呢?