bạn làm thử công thức này xem saoNhư mong muốn của tôi ở trên đang có nhu cầu đổi a, b, c... thành 1, 2, 3... Mong các mem giúp đỡ code này với. Xin chân thành cảm ơn mọi sự giúp đỡ.
Như mong muốn của tôi ở trên đang có nhu cầu đổi a, b, c... thành 1, 2, 3... Mong các mem giúp đỡ code này với. Xin chân thành cảm ơn mọi sự giúp đỡ.
Function TranCol(ByVal Cot As String) As Integer
Dim so, Kt, i, Hso()
Hso = Array(1, 26, 702)
Cot = UCase(Cot)
If Len(Cot) > 3 Or Len(Cot) = 0 Then
TranCol = 0
Exit Function
End If
For i = 0 To Len(Cot) - 1
Kt = Mid(Cot, Len(Cot) - i, 1)
so = so + (Asc(Kt) - 64) * Hso(i)
Next
TranCol = so
End Function
Sub thu()
MsgBox TranCol("iv")
End Sub
..............
tencot=Inputbox("Nhap tieu de cot:")
Cells(TranCol(tencot), 5) = "=abc"
..............
Dù người ta có nhập số hay chữ thì VBA nó cũng hiểu tuốtChẳng là cần dùng cho một thủ tục của tôi trong VBA
Cells(x, 5) = "=abc"
trong đó x= giá trị người dùng nhập vào là cột trong excel. Xử lý sao đây. Cảm ơn nhiều.
Không được anh à, tại sao tôi dùng thử hàm của anh nó lại phải =trancol("a") mới ra kết quả mà không phải là =trancol(a). Anh sửa giúp được không?
Dù người ta có nhập số hay chữ thì VBA nó cũng hiểu tuốt
Nếu x là cột thì phải viết vầy:
Cells(5, x) = "=abc"
(x đứng sau)
Với x = 10 hay x = "J" thì Excel vẫn hiểu Cells(5, x) <> cell J5
Muốn đổi cũng có gì khó đâu anhLúc đầu mình cũng nghĩ vậy vì vẫn viết ô C5 là Sheetn.Cells(5,"C")
Nhưng sau mình lại cho bạn ấy muốn đổi sang số để tính toán căn toạ độ ô.
Function TranCol(ByVal Cot As String) As Long
TranCol = Cells(1, Cot).Column
End Function