以下紀錄了筆者能想到的 4 種方法選取指定儲存格,當中使用的專有名詞可能不夠標準,還請見諒。
一、A1
如果要選擇一個儲存格,最簡單的方法是直接稱呼它的位址-- A1 。鎖定的話就是加上 $ 符號,鎖定欄是 $A 、列是 $1,最後得出 A1 、 $A1 、 A$1 和 $A$1 這種組合。如果要在 Windows系統使用快捷鍵的話,便可以按 F4 。
如果這是R1C1的場合,便可以稱呼為 R1C1 ,沒有用 [] 引號包覆的都是鎖定,不鎖定的情況便根據當時選取的儲存格推移欄/行位。關於 R1C1 的使用方法可以參考 【Excel迷因圖】遇到R1C1要如何解決 。
二、=Row() / =Column()
和 =Today() 一樣,Row和Column這兩個函數內的括號可以留白。跑出來的數字就是代表當前儲存格身處的欄/列。比如在 A2 儲存格內輸入 =Row() 的話,會得出 2 這個數值,而輸入 =Column() 則是 1 。因為 A = 1 ,B=2 , C=3 ……如此類推。
如果使用 =Rows() / =Columns() 則可以計算範圍內的總列數/列數。比如輸入 =Rows(E1:F5) ,會得出 5 這個答案。
這兩個公式與其他函數配合一起用的時候會很好用,比如接下來說到的方法。
三、=Address(1,1)
Address這個函數是根據你輸入的列數和欄數,輸出相應的位址。比如標題的公式為例,輸出值為 $A$1 。如果不希望鎖定,則可以根據下圖,在公式後半部分加上 =Address(1,1,4) 。
又例如,如果想轉換成 R1C1 樣式,也可以在後面加上 0; A1 樣式為 1 ,即 =Address(1,1,4,1) 。
如果希望加上工作表名稱,最後可以加上工作表名稱在公式後面,即 =ADDRESS(1,1,4,1,”工作表2") 。
以上面為例,最後輸出值為︰ 工作表2!A1 。
正如前文提及,由於 Address 定義欄數和列數這個特性,還可以配合方法二的 Row 和 Column 來使用。比如希望輸出 A 欄同一列的位址,便可以寫作 =Address(row(),1) 。
這個函數對於在選取儲存格時,不希望因為欄列增刪,或者其他操作方法而令位址改變時一個很有用的函數。
四、Range("A1") / Cells(1,1)
最後這個方法是編寫 VBA 的時候才用到的方法。顧名思義, Range 是指範圍,裡面可以填 "A:A" ,也可以填 "A1" 來指定單一儲存格。
而 Cells(1,1) 就只能夠指代單一儲存格,如前文所述, Cells(1,1) 就是指 A1 這一格了。另外 Cells 也可以使用英文字母來指代欄位,比如 Cells(1,"A") 也是可行的。
如果使用 Range 來指定範圍時,除了有前文介紹的寫法,筆者也會把兩者合併一起寫︰ Range("A1",cells(50,2)) 。意思即指範圍 A1:B50 的意思。
※ 筆者目前使用 Office 2010 ,有關 VBA 的寫法可能不能應用於其他版本。