如何將 Excel 資料行編號轉換成字母字元
簡介
本文討論如何在 Microsoft Excel 中使用 Microsoft Visual Basic for Applications (VBA) 函式,將數據行編號轉換成相同數據行的對應字母字元指示項。
例如,數據行編號 30 會轉換成對等的字母字元 “AD”。
其他相關資訊
Microsoft 提供的程式設計範例僅供說明之用,並不具任何明示或暗示的責任擔保。 這包括 (但不限於) 任何目的之適售性及適用性的暗示責任擔保。 本文假設您熟悉示範的程式設計語言,也熟悉用以建立和偵錯程序的工具。 Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。
ConvertToLetter 函式的運作方式是使用下列演算法:
- 讓我們
iCol
成為數據行編號。 如果iCol
小於 1,則停止。 - 計算除以 26 的
(iCol - 1)
商數和餘數,並儲存在變數a
和b
中。 - 將 的整數值轉換成對應的
b
字母字元 (0 => A,25 => Z) ,並將其釘在結果字串的前面。 - 設定
iCol
為 divisora
和迴圈。
例如:數據行編號為 30。
(迴圈 1,步驟 1) 數據行編號至少為 1,請繼續進行。
(迴圈 1,步驟 2) 第一個數據行編號除以 26:
29 / 26 = 1 餘數 3。
a = 1, b = 3
(迴圈 1,步驟 3 會) 字母的堆疊
(b+1)
:3 + 1 = 4,第四個字母是 “D”。 Result = “D”
(迴圈 1,步驟 4) 返回 步驟 1
iCol = a
iCol = 1
(迴圈 2,步驟 1) 數據行編號至少為 1,請繼續進行。
(迴圈 2,步驟 2) 少一個數據行編號除以 26:
0 / 26 = 0 餘數 0。
a = 0, b = 0
(迴圈 2,步驟 3 會) 字母的堆疊
b+1
:0 + 1 = 1,第一個字母是 “A” Result = “AD”
(迴圈 2,步驟 4) 返回 步驟 1
iCol = a
iCol = 0
(迴圈 3,步驟 1) 數據行編號小於 1,停止。
下列 VBA 函式只是將數據行編號值轉換成其相等字母字元的其中一種方式:
Function ConvertToLetter(iCol As Long) As String
Dim a As Long
Dim b As Long
a = iCol
ConvertToLetter = ""
Do While iCol > 0
a = Int((iCol - 1) / 26)
b = (iCol - 1) Mod 26
ConvertToLetter = Chr(b + 65) & ConvertToLetter
iCol = a
Loop
End Function
注意 此函式只會將傳遞給它的整數轉換成其相等的英數位元文字字元。 它不會變更實體工作表上數據行或數據列標題的外觀。