excel單元格的引用有哪幾種方式

2022-01-15 02:48:05 字數 6026 閱讀 5235

1樓:我是大角度

1、相對引用

公式中的相對單元格引用(例如 a1)是基於包含公式和單元格引用的單元格的相對位置。如果公式所在單元格的位置改變,引用也隨之改變。如果多行或多列地複製公式,引用會自動調整。

預設情況下,新公式使用相對引用。例如,如果將單元格 b2 中的相對引用複製到單元格 b3,將自動從 =a1 調整到 =a2。

2、絕對引用

單元格中的絕對單元格引用(例如 $f$6)總是在指定位置引用單元格f6。如果公式所在單元格的位置改變,絕對引用的單元格始終保持不變。如果多行或多列地複製公式,絕對引用將不作調整。

預設情況下,新公式使用相對引用,需要將它們轉換為絕對引用。例如,如果將單元格 b2 中的絕對引用複製到單元格 b3,則在兩個單元格中一樣,都是 $f$6。

3、混合引用

混合引用具有絕對列和相對行,或是絕對行和相對列。絕對引用列採用 $a1、$b1 等形式。絕對引用行採用 a$1、b$1 等形式。

如果公式所在單元格的位置改變,則相對引用改變,而絕對引用不變。如果多行或多列地複製公式,相對引用自動調整,而絕對引用不作調整。例如,如果將一個混合引用從 a2 複製到 b3,它將從 =a$1 調整到 =b$1。

2樓:匿名使用者

三種,相對引用,如:a1,b3等等.此時公式複製到另一個位置時行和列都要變.

絕對引用,如:$a$1,$b$3等等.此時公式複製到另一個位置時行和列都不變.

混合引用,如:$a1,b$3等等.$a1此時公式複製到另一個位置時行要變,列不變.b$3此時公式複製到另一個位置時行不變,列要變.

希望有幫助

3樓:一件寂寞

excel單元格的引用,讓工作輕鬆沒壓力

4樓:張小小的**

excel中單元格的引用分為哪三種?你經常用的又是哪一種?005-1

5樓:匿名使用者

相對引用、絕對引用和混合引用三種

excel中單元格的引用方式有哪幾種

6樓:愚人談娛樂

三種。1、相對引用:公式中的相對單元格引用是基於包含公式和單元格引用的單元格的相對位置。

如果公式所在單元格的位置改變,引用也隨之改變。如果多行或多列地複製公式,引用會自動調整。

2、絕對引用:單元格中的絕對單元格引用總是在指定位置引用單元格。如果公式所在單元格的位置改變,絕對引用的單元格始終保持不變。如果多行或多列地複製公式,絕對引用將不作調整。

3、混合引用:混合引用具有絕對列和相對行,或是絕對行和相對列。絕對引用列採用 $a1、$b1 等形式。

絕對引用行採用 a$1、b$1 等形式。如果公式所在單元格的位置改變,則相對引用改變,而絕對引用不變。

7樓:專家

一般常用的兩種

=a1這種 然後又分為,混合引用,絕對引用,相對引用,都是與$結合使用

還有一種rc模式,偏移量引用

其實是一樣

excel中的單元格引用有哪幾種方式?

8樓:李李李

用range可以將文字型的單元格地址轉化為單元格物件引用,類似於工作表函式“indirect”。它可以引用單元格、區域、整行、整列及整個工作表。

1、引用單元格

range引用單元格的物件的方式為:單元格的列標加行號作為引數,且左右加入引號。例如:

range(“a1”) ——表示a1單元格

range(“c25”) ——表示c25單元格

range(“zz1048576”) ——表示zz1048576單元格,在excel2003中是無效的引用,因為excel2003的最大行不超過65536行,最大列不超過iv列

range(“a1”)本身是代表一個單元格物件,但在“msgbox range(“a1”)”語句中則可以獲取單元格的值。事實上“msgbox range(“a1”)”是“msgbox range(“a1”).value”的簡寫。

每個物件都有很多屬性,同時也都有一個預設屬性,而單元格的預設屬性是“value”,所以如果不明確指出屬性時,那麼一定是呼叫它的value屬性值。

range引數中的引號必須是在半形狀態下輸入,否則必將產生編譯錯誤。另一個重點是vba中range(“a1”)方式引用物件時是不區分相對引用和絕對引用的,不管使用range(“a1”)、range(“$a1”)、range(“a$1”)還是range(“$a$1”)都引用同一單元格,而且在迴圈中也不產生任何影響。所以為了簡化,通常只用range(“a1”)這種形式來引用單元格。

2、引用區域

rang引用區域時是利用區域左上角單元格地址加冒號再加右下角單元格地址為其引數。不過引數也可以寫成右下單元格地址加冒號再加左上角單元格地址,vba會自動將其轉換成左上角單元格地址加冒號再加右下角單元格地址的形式。

例如以下兩種方式引用區域都可以得到相同結果:

msgbox range(“a2:d1”).address

msgbox range(“d1: a2”).address

以下是一些合法的區域引用:

range(“a1:v10”) ——代表從a1到v10的矩形區域,包括220個單元格

range(“f1:f10000”) ——代表從f1到f10000的矩形區域,包括9999個單元格

range(“d2:zz10000”) ——代表從d2到zz10000的矩形區域,包括6989301個單元格,在excel2003是不合法的引用方式,因為它的最大列只有iv

區域的預設屬性也是value,但是區域的value是一個陣列,包括多個物件,vba中無法直接將其顯示在螢幕上。如果利用msgbox來顯示這個屬性值將得到一個執行錯誤。

正確的方式是逐個引用區域中單個值。通過索引號作引數來實現。例如:

range(“d2:z10”)(1) ——代表d2:z10區域中第一個單元格的value,即d2

range(“d2:z10”)(3) ——代表d2:z10區域中第三個單元格的value,即f2

range(“d2:z10”)(24) ——代表d2:z10區域中第24個單元格的value,即d3

也就是說,索引號代表區域中從左到右、從上到下的序號,它是區域左上角單元格的參照進行相對引用。

如果索引號為小數時,vba會自動進行四捨五入。例如:

msgbox range(“d3:e7”)(1.5).address ——結果為“$e$3”,引數1.5當作2處理

msgbox range(“d3:e7”)(4.4).address ——結果為“$e$4”,引數4.4當作4處理

事實上,索引號可以使用兩個引數,第一參數列示行的索引,第二參數列示列的索引。那麼引數“(4,5)”就可以引用區域中第四行第五列的單元格,它以區域左上角單元格為參照,而非以工作表中a1單元格為參照。

例如以下的引用:

msgbox range(“d3:f7”)(1,3).address ——結果為“$f$3”,表示d3:f7區域第一行第三列

msgbox range(“d3:f7”)(4,2).address ——結果為“$e$6”,表示d3:f7區域第四行第二列

區域的引數還可以使用零和負數,甚至大於區域單元格個數以及小於零,同樣是合法的引用。當行索引引數為零時,則向區域中左上角單元格向上偏移一個單位;當列引數為零時,則向區域中左上角單元格向左偏移一個單位;如果引數是負數,在繼續追加偏移量。例如:

msgbox range(“d3:f7”)(0,0).address ——結果為“$c$2”,即d3向左及向上偏移一個單位

msgbox range(“d3:f7”)(-1,-2).address ——結果為“$a$1”,即d3向上偏移兩個單位再向左偏移三個單位

msgbox range(“d3:f7”)(9,4).address ——結果為“$g$11”,即d3向下偏移九個單位再向右偏移四個單位。

雖然其行數與列數都已超過區域的大小,仍然可以正確的引用單元格

range的引數也支援表示式,即字元或者數值運算結果。例如:

range(“f”&3+2) ——表示引用f5單元格

range(“f”&range(“d5”).value)

range(“d”&worksheetfunction.min([a:a])& “:g5”)

還可以使用變數作為引數,這在迴圈語句中極為有用。例如:

range(“d”&i) ——表示列標為d,行號為變數i的值的單元格引用

3、引用多區域

如果作引數是使用多個區域地址,且用半形逗號分隔,那麼range也可以引用多個區域。

例如以下引用方式:

range(“d3,f7”) ——表示d3和f7兩個區域,包括2個單元格

range(“d3:f4,g10”) ——表示d3:f4和g10兩個區域,包括7個單元格

range(“a1,b3:f4,z1:zb2”) ——表示a1、b3:f4和z1:zb2三個區域,包括1317個單元格

此方式引用單元格有一個限制,引數的長度不能超過256個字元,否則將會產生執行時錯誤。

4、引用整行、整列

利用“行號:行號”作為引數時產生對整行的引用,同理利用“列標:列標”作為引數時可產生對整列的引用,如果兩個行號或者列標不一致時,可以引用多行或者多列。

以下是一些合法的引用:

range(“2:2”) ——表示引用第二行

range(“2:10”) ——表示引用第二到第十行

range(“d:d”) ——表示引用第d列,列標不區分大小寫

range(“d:z”) ——表示引用從d列開始到z列結束的區域

range(“d:a”) ——表示引用從a列到d列,順序不一致時,vba會自動轉換成升序格式

引數中的冒號可以用半形也可以用全形冒號,vba會將其全形冒號轉成半形冒號。但是引用卻只能使用半形,否則將產生編譯錯誤。

整行、整行引用物件除了range方法外,還可以用rows和columns來完成。其中rows引用行,以阿拉伯數字作為引數;columns引用列,既可用阿拉伯數字做引數,也可用列標做引數。

rows(2) ——表示引用第二行

rows(“2”) ——同樣表示引用第二行

rows(“2:2”) ——仍然表示引用第二行

rows(“2:4”) ——表示引用第二到第四行

columns(2) ——表示引用第二列,相當於range(“b:b”)

columns(“b”) ——同樣表示引用第二列

columns(“b:b”) ——仍然表示引用第二列

columns(“b:d”) ——表示引用b到d列

如果不帶引數,那rows代表整個工作表所有行。而columns代表整個工作表所有列。

5、range巢狀使用

除上面的四中方法外,range還支援利用單元格作為引數,其具體語法為:

range(cell1,cell2)

其中cell1和cell2是必選引數。cell1用於指定目標區域的左上角單元格,cell2用於指定目標區域右下角單元格。如果使用一個或者三個單元格將產生編譯錯誤。

例如以下引用方式全是合法的區域引用:

range(range(“a1”),range(“d2”) ——表示引用a1:d2區域,包含8個單元格

range(range(“a4”),range(“a100”) ——表示引用a4:a100區域,包含97個單元格

當然也有一些特殊的應用,當引數並非單個單元格,而是區域是,取兩個區域所跨越的最大範圍。例如:

range(range(“a1:a3”),range(“d2”)) ——表示引用a1:d3區域,而非a1:

d2。vba會從兩個區域最左上角的單元格作為新的區域的參照起點,再取兩個區域所跨越的最大行作為新的區域的行數,取兩個區域跨越的最大列作為新區域的列數。

range(range(“b2:a3”),range(“a3:d10”)) ——表示引用a2:d10區域。

要理解這個演算法,可以分別將b2:a3和a3:d10兩段字元配對,然後從前兩個字元中取最小值,再從後兩對字元中取最大值,再加上冒號組合成一個新的區域地址。

例如“b2:a3”和“a3:d10”,先從第一對字元b和a中取出最小值a,然後從第二對字元2和3中取出最小值2,再從第三對字元a和d中取出最大值d,最後從3和10中取最大值10,將這四個字元與冒號串聯起來即為“a2:

d10”。