Board logo

標題: [發問] EXCEL 數字轉成欄位 [打印本頁]

作者: Genie    時間: 2015-3-19 12:09     標題: EXCEL 數字轉成欄位

我在微軟的頁面找到一個程式是可以將數字轉換成欄位

例如:1=A、5=E、26=Z、52=AZ……

但這個程式有點小問題,像 677 應該為 "ZA",但卻顯示為 "Y["

以及三個英文以上的欄會顯示不出來,例如 AAA 欄

請問以下的程式我該如何改呢?

謝謝∼
  1. Function ConvertToLetter(iCol As Integer) As String
  2.    Dim iAlpha As Integer
  3.    Dim iRemainder As Integer
  4.    iAlpha = Int(iCol / 27)
  5.    iRemainder = iCol - (iAlpha * 26)
  6.    If iAlpha > 0 Then
  7.       ConvertToLetter = Chr(iAlpha + 64)
  8.    End If
  9.    If iRemainder > 0 Then
  10.       ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
  11.    End If
  12. End Function
複製代碼

作者: stillfish00    時間: 2015-3-19 13:21

回復 1# Genie
  1. Function ConvertToLetter(iCol As Integer) As String
  2.     ConvertToLetter = Replace(Cells(1, iCol).Address(False, False), "1", "")
  3. End Function
複製代碼

作者: Genie    時間: 2015-3-19 13:49

回復 2# stillfish00


程式使用起來沒有問題

非常感謝!!!
作者: GBKEE    時間: 2015-3-20 07:34

本帖最後由 GBKEE 於 2015-3-20 08:19 編輯

回復 3# Genie
這也可以,適用所有Excel版本
  1. Function ConvertToLetter(iCol As Double) As String
  2.     If iCol <= Rows.Count * Columns.Count Then
  3.         ConvertToLetter = Split(Cells(iCol).Address, "$")(1)
  4.     Else
  5.         ConvertToLetter = iCol & " 超出工作表範圍"
  6.     End If
  7. End Function
複製代碼

作者: xmi    時間: 2015-3-20 21:31

回復  Genie
stillfish00 發表於 2015-3-19 13:21


請問這個是否用於"VBAProject"內? 我paste到"VBAProject"內, 但不能沒有出現預定的result....
作者: Genie    時間: 2015-4-9 13:54

回復 4# GBKEE


這個程式測試過也沒有問題

謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)