Nếu số >0 và số<= 16384Hàm của mình:
=chusothutu(24), ket quả = X
Mã:Public Function chusothutu(intnumber As Integer) As String Dim STR1 As String Dim STR2 As String Dim str3 As String Dim I As Integer Dim J As Integer Dim k As Integer Dim L As Integer Dim a As Double If logcoso(intnumber, 26) <= 1 Then chusothutu = Sothututhanhchucai(intnumber) Else If logcoso(intnumber - 26, 26) <= 2 Then If Int(intnumber / 26) = intnumber / 26 Then I = Int(intnumber / 26) - 1 Else I = Int(intnumber / 26) End If STR1 = Sothututhanhchucai(I) k = I * 26 J = intnumber Mod k STR2 = Sothututhanhchucai(J) chusothutu = STR1 & STR2 Else If logcoso(intnumber - 26 - 26 * 26, 26) <= 3 Then str3 = Sothututhanhchucai((intnumber - 702) Mod 26) If Int((intnumber - 702) / 26 / 26) = (intnumber - 702) / 26 / 26 Then STR1 = Sothututhanhchucai(Int((intnumber - 702) / 26 / 26)) Else STR1 = Sothututhanhchucai(Int((intnumber - 702) / 26 / 26) + 1) End If a = ((intnumber - 702) / 26) If a > Int(a) Then a = Int(a) + 1 Else a = Int(a) End If k = a Mod 26 STR2 = Sothututhanhchucai(k) chusothutu = STR1 & STR2 & str3 Else chusothutu = "KO QUAN TAM" End If End If End If End Function Public Function Sothututhanhchucai(intso As Integer) As String Select Case intso Case 1 Sothututhanhchucai = "A" Case 2 Sothututhanhchucai = "B" Case 3 Sothututhanhchucai = "C" Case 4 Sothututhanhchucai = "D" Case 5 Sothututhanhchucai = "E" Case 6 Sothututhanhchucai = "F" Case 7 Sothututhanhchucai = "G" Case 8 Sothututhanhchucai = "H" Case 9 Sothututhanhchucai = "I" Case 10 Sothututhanhchucai = "J" Case 11 Sothututhanhchucai = "K" Case 12 Sothututhanhchucai = "L" Case 13 Sothututhanhchucai = "M" Case 14 Sothututhanhchucai = "N" Case 15 Sothututhanhchucai = "O" Case 16 Sothututhanhchucai = "P" Case 17 Sothututhanhchucai = "Q" Case 18 Sothututhanhchucai = "R" Case 19 Sothututhanhchucai = "S" Case 20 Sothututhanhchucai = "T" Case 21 Sothututhanhchucai = "U" Case 22 Sothututhanhchucai = "V" Case 23 Sothututhanhchucai = "W" Case 24 Sothututhanhchucai = "X" Case 25 Sothututhanhchucai = "Y" Case 26 Sothututhanhchucai = "Z" Case 0 Sothututhanhchucai = "Z" End Select End Function Public Function logcoso(cuaB As Integer, cosoA As Integer) As Double logcoso = Log(cuaB) / Log(cosoA) End Function
Anh em tham khảo nhé.
A/e có cách hay hơn cho mình ref nha.
Mã:
Function ThuTuABC(ByVal iNum As Long) As String 'iNum <= 16384
ThuTuABC = Split(Cells(1, iNum).Address(1, 0), "$")(0)
End Function
Mã:
Function ThuTuA_Z(ByVal iNum As Long) As String
Dim N&, tmp$
Do
N = Int((iNum - 1) / 26)
tmp = Chr(((iNum - 1) Mod 26) + 65) & tmp
iNum = N
Loop Until N = 0
ThuTuA_Z = tmp
End Function
Lần chỉnh sửa cuối: