返回列表 上一主題 發帖

[發問] EXCEL 數字轉成欄位

[發問] 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
複製代碼

回復 1# Genie
  1. Function ConvertToLetter(iCol As Integer) As String
  2.     ConvertToLetter = Replace(Cells(1, iCol).Address(False, False), "1", "")
  3. End Function
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 2# stillfish00


程式使用起來沒有問題

非常感謝!!!

TOP

本帖最後由 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

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


請問這個是否用於"VBAProject"內? 我paste到"VBAProject"內, 但不能沒有出現預定的result....

TOP

回復 4# GBKEE


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

謝謝!

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題