● 本技巧的目的:定位到指定行或者列中的最後一個非空單元格。
● 這個技巧非常重要,在 Excel 操作中是否經常會遇到這樣的情景,需要把單元格快速移動到本行或者本列的最後一個有數據的單元格呢?在VBA 中這個代碼也是非常重要的,他能夠讓我們實現表格數據的動态獲取,而不需要輸入一個固定的地址。
● 首先看一下在 Excel 中是如何操作的:
● 現在的單元格地址在 A2
● 在 Excel 中快速移動到 A15 的方法:Ctrl ↓ (數字鍵盤的下方向鍵)。
● 同理,用Ctrl ↑ ↓ ← → (數字鍵盤各方向鍵) 可以實現各個方向的快速移動到最後單元格的目的。
● ★★★ 注意:在Excel 中用 Ctrl 方向鍵 是移動到連續的最後有數據的單元格。與VBA 不同!!!
● 如下圖,最後單元格是 H1 和 A15
● 1. 代碼助手神鍵手實現快速輸入
隻要輸入中文 最大行 空格,就會自動彈出選項,再也不用記長長的代碼了多方便。
● 2. 單元格最大行數,最大列數
最大行:Sheet1.Rows.Count
注釋:
1) Sheet1 工作表 所有行的數量
2) 還有個更簡單的方法:當然用Rows.count 也是可以的
① Excel2010 以上版本最大行是 1048576 行, 但是還是可以使用 65536,60000 行這個數值。
② Excel2003 中最大行是 65536 行,所以我們可以寫成 [A65536] 甚至是 [A60000]
最大列:ActiveSheet.Columns.Count
注釋:活動單元格的最大列
● 3. 參數
● 4. VBA 與 EXCEL 操作的原理不同:
★★★ 注意:VBA 是:先移動到最後的位置,然後再返回,所以是返回到真正的最後一行!!!
● 5. 快速定位到:一列中的最後一行單元格
書寫方法:Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp)
注釋:
1) 格式:A列最大行.End(xlup),注:可以是A列,可以是B列,C列,任意列
2)定位到最大行後,再向上移動到最後一行數據所在的單元格
3)調試語句: Debug.print rng.address '在立即窗口打印出 rng 的地址:$A$18
● 6. 快速定位到:一行中的最後一列單元格
書寫方法:Sheet1.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft)
注釋:
1) 格式:第一行最大列.End(xlToLeft),注:可以是第1行,第2行,任意行
2) 定位到最大列後,再向左移動到最後一列數據所在的單元格
3) 調試語句:
Debug.Printrng.Address '打印地址
Debug.Printrng.Column '打印數字列号
Debug.Print "最後非空單元格地址為:" & rng.Address & "列号:"& rng.Column _
& "行号:" & rng.Row & "數值:"& rng.Value
在立即窗口打印出:
$K$1
11
最後非空單元格地址為:$K$1列号:11行号:1數值:123
● 7. Address, 後面加參數,代表:是否絕對引用
1)Sheet1.Range("A3").Address(0,1) 代表: $A3 列絕對引用, 行相對引用
2)Sheet1.Range("A3").Address(1,0) 代表: A$3 列相對引用, 行絕對引用
3)Sheet1.Range("A3").Address(1,1) 和 Sheet1.Range("A3").Address
都是代表: $A$3 行列均絕對引用
4)Sheet1.Range("A3").Address(0,0) 代表: A3 行列都是相對引用
本人首發于微信公衆号EXCEL880
● VBA代碼助手 懶人神器 請在在 EXCEL880官網下載
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!