在VBA中,可以通過Worksheet對象的Range屬性來引用單元格,這也是引用單元格 最常用的一種方法。Range屬性的參數(shù)有很多種設(shè)置方法。不同設(shè)置方法引用到的單元格區(qū)域也不同。
Worksheet對象和Range對象都擁有Cells屬性。該屬性可以通過單元格所在的行、列號(hào), 或單元格的索引號(hào)來引用單元格。Cells屬性只能引用單個(gè)單元格,但是因?yàn)槠鋮?shù)可以使用變量,所以使用起來最靈活。
將表示單元格地址的字符串(A1 樣式)設(shè)置為Range屬性的參數(shù),即可引用到該地址表示的單元格區(qū)域,如下圖所示:
如果一個(gè)單元格區(qū)域已經(jīng)被定義為名稱,如圖 3 -35 所示。
圖 3-35 將A1:B10 區(qū)域定義為名稱C_Data
要引用該名稱表示的單元格,也可以將Range的參數(shù)設(shè)置為表示名稱名的字符串,如下圖所示:
引用多個(gè)不連續(xù)的單元格區(qū)域
如果要引用多個(gè)不連續(xù)的單元格區(qū)域,可以將Range的參數(shù)設(shè)置為一個(gè)用逗號(hào)分隔的、由多個(gè)單元格地址(A 1 樣式)組成的字符串,如下圖所示:
執(zhí)行這行代碼的效果如圖 3-36 所示。
圖 3-36 選中A 1:A 4、B 6:E10 和C 2:F 4 三個(gè)區(qū)域
執(zhí)行代碼后,同時(shí)選中了 3 個(gè)區(qū)域。
引用多個(gè)區(qū)域的公共區(qū)域
如果要引用多個(gè)區(qū)域的公共區(qū)域,可以將Range的參數(shù)設(shè)置為一個(gè)用空格分隔的、由多個(gè)單元格地址組成的字符串,如下圖所示:
執(zhí)行這個(gè)過程后的效果如圖 3-37 所示。
圖 3-37 在B 1:B 10 和A 4:D 6 的公共區(qū)域中輸入數(shù)值100
引用兩個(gè)區(qū)域圍成的最小矩形區(qū)域
如果替Range設(shè)置兩個(gè)用逗號(hào)隔開的參數(shù),引用到的是這兩個(gè)區(qū)域圍成的矩形區(qū)域,如下圖所示:
圖 3-38 引用兩個(gè)單元格區(qū)域圍成的矩形區(qū)域
Range屬性返回的,是包含參數(shù)中兩個(gè)單元格區(qū)域的最小矩形區(qū)域。
通過行、列號(hào)
引用工作表中的某個(gè)單元格
如果要在活動(dòng)工作表中第 3 行與第 4 列交叉的單元格——D 3 中輸入 20,可以將代碼寫為:
執(zhí)行這個(gè)過程后的效果如圖 3-39 所示。
圖 3-39 在第 3 行與第 4 列交叉的單元格中輸入20
使用Cells屬性引用單元格時(shí),表示行號(hào)的參數(shù)(第 1 參數(shù))只能設(shè)置為數(shù)字,但第 2 參數(shù)可以設(shè)置為數(shù)字,也可以設(shè)置為表示列標(biāo)的字母,如前面的代碼還可以寫為:
通過行、列號(hào)
引用區(qū)域中的某個(gè)單元格
Range對象的Cells屬性,返回的是該Range對象中指定行與列交叉的單元格。如想在 B 3 :F 9 中第 2 行與第 3 列交叉的單元格中輸入數(shù)值 100,代碼可以寫為:
執(zhí)行這個(gè)過程的結(jié)果如圖 3 - 40 所示。
圖 3-40 通過Cells屬性引用區(qū)域中的某個(gè)單元格
B3 :F9 中第 2 行與第 3 列交叉的單元格,就是工作表中的D4單元格。
通過索引號(hào)引用單個(gè)單元格
Worksheet對象的Cells屬性,返回指定工作表中所有單元格組成的集合,可以通過索引號(hào)引用該集合中的某個(gè)單元格,如:
或許有同學(xué)會(huì)有疑問:第 2 個(gè)單元格是哪個(gè)單元格?Excel是按什么規(guī)則確定單元格的索引號(hào)的?
想知道Cells(2)引用的是哪個(gè)單元格,可以先執(zhí)行這個(gè)過程,看看被寫入數(shù)據(jù)的是哪個(gè)單元格,如圖 3 -41 所示。
圖 3-41 在活動(dòng)工作表的第 2 個(gè)單元格輸入 200
顯然,工作表中索引號(hào)是 2 的單元格是B 1。只要改變代碼中的索引號(hào),再觀察執(zhí)行代碼的結(jié)果,即可知道Excel是怎樣為單元格編索引號(hào)的:Excel按從左到右,從上到下的順序?yàn)閱卧窬幩饕?hào),即A1 為第 1 個(gè)單元格,B1 為第 2 個(gè)單元格,C1 為第 3 個(gè)單元格……A2 為第 16385 個(gè)單元格……如圖 3-42 所示。
圖 3-42 工作表中各單元格的索引號(hào)
如果要引用D6 單元格,索引號(hào)應(yīng)設(shè)置為 81924,
可以將代碼寫為:Cells(81924)。
在VBA中, 如果引用的是 Worksheet對象的 Cells屬 性, 可設(shè)置的索引號(hào)為 1 到 17179869184(1048576 行×16384 列)的自然數(shù),如果引用的是Range對象的Cells屬性,索引號(hào)的范圍通常為 1 到這個(gè)區(qū)域包含的單元格的個(gè)數(shù)。
通過地址和索引號(hào)引用單元格的小竅門,你學(xué)會(huì)了嗎?
聯(lián)系客服