VBA選取單元格的8種方法
本技巧目的: 掌握單元格的各種引用方法
1. Range 屬性
2. Cells 屬性
★★★ Range 和 Cells 總結:
3. 方括號 [ ]
4. Offset 屬性
5. Resize 屬性
★★★ Offset、Range 和 Resize 總結
6. Union 屬性
7. Usedrange 屬性
8. CurrentRegion 屬性
VBA選取單元格的8種方法
本技巧目的: 掌握單元格的各種引用方法
Excel 就是由基本元素 -- 單元格構成的,它就像我們身體的細胞一樣,可是非常重要的,千萬不能小看它的作用。不論是學習 vba 還是 操作 Excel 本身, 最先接觸到的就是單元格,只有熟練的掌握了,才能進行後續的操作。★★★ 注意:下面所有的標點符號全部使用半形,或者說英文標點。 程式碼中不區分大小寫。使用程式碼助手可以實現程式碼的快速輸入。程式碼助手下載地址 http://excel880.com/blog/archives/112971. Range 屬性
單個單元格的表示方法:表示方法:Sheet1.Range("A1")註釋:1) 工作表 Sheet1 的單元格: A1, 書寫格式:Sheet1.Range("英文字母+數字")2) 保持良好的習慣加上工作表名稱,對於後續跨工作表的操作會減少很多的問題。就像寄快遞時要把小區的每棟樓的編號寫上一樣,不會發生快遞寄到隔壁樓的問題喲。單元格地址選中使用命令: .SelectSheet1.Range("A1").Select多個單元格的表示方法:連續單元格: A3 到 C6 單元格表示方法: Sheet1.range("A3:C6")註釋:1) 書寫方法: Sheet1. ("英文字母+數字 : 英文字母+數字")2) 首尾單元格之間用 : 連線二組連續單元格,組合起來的方法:A3 到 C6 單元格 , E7 到 G11 單元格表示方法: Sheet1.range("A3:C6, E7:G11")Sheet1.range("A3:C6, E7:G11").Select註釋:1) 書寫方法: Sheet1. ("英文字母+數字 : 英文字母+數字, 英文字母+數字 : 英文字母+數字")2) 二組不連續的地址,中間用 ,分隔3) 要點: 連續單元格: 首尾之間用 : 來連線, 二段不連續的單元格組合用 ,分隔2. Cells 屬性
表示方法:sheet1.cells(1,1) 或者 sheet1.cells(1,"A")註釋:1)括號內 前面代表:行 後面代表:列, 用 ,分隔2)二種方法: ① 前後都使用數字② 前面使用數字,後面用英文字母代表列號 ③ ★★★ 注意:英文字母要加雙引號多個單元格的表示方法:連續單元格: B2 到 D7 單元格表示方法:sheet1.Range(sheet1.cells(2,2),sheet1.cells(7,4)) 或者sheet1.Range(sheet1.cells(2,"B"),sheet1.cells(7,"D"))註釋:書寫方法: sheet1.range(工作表名稱.左上方單元格,工作表名稱.右下方單元格)★★★ Range 和 Cells 總結:
1) Range 和 Cells 書寫方法不同: Range("A1") 和 Cells(1,1) 或者 Cells(1,"A") 所指的單元格是相同的2) Range: 寫好後, 後面加上 . 系統會出現提示, Cells 沒有3) Range: 可以表示連續的單元格4) Cells: 更方便,直接寫行,列號, 中間用英文逗號分隔,不需要使用字串拼接。它是在迴圈中根據行列號訪問的主要手段例如: Range("A" & rows.count) Cells(rows.count, "A")3. 方括號 [ ]
Sheet1.Range("A1") 可以寫成 sheet1.[A1]Sheet1.range("A1:C1") 可以寫成 sheet1.[A1:C1]★★★ 注意: 只能使用列號的英文字母或者行號數字,不能使用變數4. Offset 屬性
Offset 的使用方法:以某單元格作為起點,然後以他為起點向上下,左右偏移。1)需求:當用戶選中單元格後 , 需要在選中的單元格左上單元格寫入數字 1,且選中單元格是未知的。2)有了Offset 屬性,只需要在 Selection 後輸入偏移的行列號,就能實現輸入。3)實現方法:Selection.offset(-1,-1) = 1 這樣書寫是不是很方便呢?二種方法:使用 offset, 假設以 B3 為起點, 這個起點位置可以根據自己的要求來設定。書寫方法:Sheet1.range("B3").offset(0,1)註釋:1) 代表: B3 開始,不偏移行,向右偏移一列, 即 C3 單元格2) offset 括號內 前面數字代表行, 後面數字代表列3) 數字 0 代表: 不偏移4) 數字 -1 代表: 向上 或者 向左 偏移例如1: Sheet1.range("B4").offset(-1,1) 即: B4 向上偏移一行,向右偏移一列, 即 C3 單元格例如2: Sheet1.range("D5").offset(-2,-1) 即: D5 向上偏移二行,向左偏移一列, 即 C3 單元格使用 range 或者 cells, 假設以 B3 為起點, 這個起點位置可以根據自己的要求來設定。書寫方法:sheet1.range("B3").cells(1,2) 或者 sheet1.range("B3").range("B1")註釋:1) 上面書寫方法代表:B3 開始,不偏移行,向右偏移一列, 即 C3 單元格2) 詳解:① 不能 向上 或者 向左 偏移 ② 數字 1 代表: 本行,本列③ 數字 2 代表: 向下 1 行 或者 向右 1 列 ④ 數字 3 代表: 向下 2 行 或者 向右 2 列⑤ 後面以此類推,每增加 1,偏移 也 增加 1 ⑥ Range 中的英文字母可以當作數字來看 即 B 代表 數字 2, C 代表 數字 35. Resize 屬性
要求:表示上圖的 B3:E10 單元格同理:首先以某單元格作為起點,然後以他為座標向上下,左右擴充套件。這裡是使用擴充套件哦。好處和前面說的 Offset 是一樣的:修改方便,另外即使是未知位置單元格也能擴充套件。書寫方法:Sheet1.Range("B3").Resize(8, 4)註釋:1) 上面書寫方法代表:B3 開始,(含本行本列)共擴充套件 8行,4列, 即 B3:E10 單元格2) 詳解:① 數字 1 代表: 本行,本列 ② 數字 2 代表擴充套件: 向下 1 行 或者 向右 1 列③ 數字 3 代表擴充套件: 向下 2 行 或者 向右 2 列 ④ 後面以此類推,每增加 1,擴充套件 也 增加 1offset,resize 組合聯合使用這兩個屬性是可以組合使用的。這樣對於後期的改動會更為方便快捷。要求:表示 C3:E9 單元格書寫方法:Sheet1.Range("A1").Offset(2,2).Resize(7,3)註釋:1) A1 單元格 偏移: 向下 2行 向右 2列 再擴充套件: 向下 7行 向右 3列2) 偏移,擴充套件可以前後隨意組合★★★ Offset、Range 和 Resize 總結
6. Union 屬性
連線二個不連續的區域: B3:D8, G10:I15書寫方法: Union(Sheet1.Range("B3:D8"), Sheet1.Range("G10:I15"))7. Usedrange 屬性
書寫方法: Sheet1.Usedrange註釋:1) 確定Sheet1 的 已使用區域2) 該程式碼所表示的地址為:A1:D7書寫方法:Sheet1.Usedrange註釋:1)該程式碼所表示的地址為: A1:G112)★★★ 注意: F10:G10 區域即使為空格, 表示的地址也會是 A1:G118. CurrentRegion 屬性
書寫方法:Sheet1.Range("A1").CurrentRegion註釋:1) 以 A1 為起點的連續區域2) 該程式碼表示的地址為:A1:D7書寫方法:Sheet1.Range("F10").CurrentRegion註釋: 該程式碼表示的地址為:F10:G11