Cho em hỏi cách convert letter to number ?

Liên hệ QC

tannguyen0305

Thành viên mới
Tham gia
23/10/18
Bài viết
4
Được thích
1
Hello mọi người, em là thành viên mới, hôm nay là lần đầu tiên em tiếp xúc với vba nhờ giải đáp của các anh chị ở topic này của em.

https://www.giaiphapexcel.com/diendan/threads/cho-em-hỏi-về-cách-thêm-khoảng-trắng-hoặc-kí-tự-đặc-biệt-giữa-các-chữ-trong-excel.138490/

Tự nhiên thích vba,
em có 1 vấn đề nữa phát sinh là làm sao để covert từ letter to number với rule như sau ạ
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
g = 7
h = 8
i = 9
j = 10
k = 11
l = 12
m = 13
n = 14
o = 15
p = 16
q = 17
r = 18
s = 19
t = 20
u = 21
v = 22
w 23
x = 24
y = 25
z = 26
ví dụ:

t-a-n-n-g-u-y-e-n >>>> 20-1-14-14-7-21-25-5-14

em có lên mạng tìm thì ra dòng code này. mà sao em chạy nó không ra kết quả. mong anh chị xem giúp em với ạ. em cảm ơn mọi người nhiều
Function ConvertLetterToNumber(ByVal strSource As String) As String

Dim i As Integer
Dim strResult As String

For i = 1 To Len(strSource)
Select Case Asc(Mid(strSource, i, 1))
Case 65 To 90:
strResult = strResult & Asc(Mid(strSource, i, 1)) - 64
Case Else
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
ConvertLetterToNumber = strResult

End Function
 
Hello mọi người, em là thành viên mới, hôm nay là lần đầu tiên em tiếp xúc với vba nhờ giải đáp của các anh chị ở topic này của em.

https://www.giaiphapexcel.com/diendan/threads/cho-em-hỏi-về-cách-thêm-khoảng-trắng-hoặc-kí-tự-đặc-biệt-giữa-các-chữ-trong-excel.138490/

Tự nhiên thích vba,
em có 1 vấn đề nữa phát sinh là làm sao để covert từ letter to number với rule như sau ạ

ví dụ:

t-a-n-n-g-u-y-e-n >>>> 20-1-14-14-7-21-25-5-14

em có lên mạng tìm thì ra dòng code này. mà sao em chạy nó không ra kết quả. mong anh chị xem giúp em với ạ. em cảm ơn mọi người nhiều
Trong cái hàm bạn lụm được có cái chỗ 65 to 90 và cái dòng dưới là gì gì - 64 đấy. Bạn thử nghịch xem
 
Upvote 0
Thêm dòng này vào trước vòng for:
strSource = UCase(strSource)
PHP:
Function ConvertLetterToNumber(ByVal strSource As String) As String
Dim i As Integer
Dim strResult As String
strSource = UCase(strSource) '<---thêm dòng này
    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 65 To 90:
                strResult = strResult & Asc(Mid(strSource, i, 1)) - 64
            Case Else
                strResult = strResult & Mid(strSource, i, 1)
            End Select
    Next
ConvertLetterToNumber = strResult
End Function
 
Upvote 0
Hello mọi người, em là thành viên mới, hôm nay là lần đầu tiên em tiếp xúc với vba nhờ giải đáp của các anh chị ở topic này của em.

https://www.giaiphapexcel.com/diendan/threads/cho-em-hỏi-về-cách-thêm-khoảng-trắng-hoặc-kí-tự-đặc-biệt-giữa-các-chữ-trong-excel.138490/

Tự nhiên thích vba,
em có 1 vấn đề nữa phát sinh là làm sao để covert từ letter to number với rule như sau ạ

ví dụ:

t-a-n-n-g-u-y-e-n >>>> 20-1-14-14-7-21-25-5-14

em có lên mạng tìm thì ra dòng code này. mà sao em chạy nó không ra kết quả. mong anh chị xem giúp em với ạ. em cảm ơn mọi người nhiều
Vầy cũng được
Mã:
Function Letter2Num(ByVal Text As String) As String
  Dim n As Long
  Letter2Num = LCase(Text)
  For n = 97 To 122
    Letter2Num = Replace(Letter2Num, Chr(n), n - 96, , , vbTextCompare)
  Next
End Function
Hoặc "tà đạo"
Mã:
Function Letter2Num(ByVal Text As String) As String
  Dim col As Long
  Letter2Num = Text
  For col = 1 To 26
    Letter2Num = Replace(Letter2Num, Left(Cells(1, col).Address(0, 0), 1), col, , , vbTextCompare)
  Next
End Function
 
Upvote 0
Thêm dòng này vào trước vòng for:
strSource = UCase(strSource)


[/php]
hay quá ạ, em cảm ơn anh/chị nhiều ạ :):):):)
Bài đã được tự động gộp:

Vầy cũng được
Mã:
Function Letter2Num(ByVal Text As String) As String
  Dim n As Long
  Letter2Num = LCase(Text)
  For n = 97 To 122
    Letter2Num = Replace(Letter2Num, Chr(n), n - 96, , , vbTextCompare)
  Next
End Function
Hoặc "tà đạo"
Mã:
Function Letter2Num(ByVal Text As String) As String
  Dim col As Long
  Letter2Num = Text
  For col = 1 To 26
    Letter2Num = Replace(Letter2Num, Left(Cells(1, col).Address(0, 0), 1), col, , , vbTextCompare)
  Next
End Function
sao lại gọi là tà đạo ạ :v
 
Upvote 0
Kiểu kém hiệu quả nhất

Function Encode(ByVal s As String, Optional ByVal pos As Integer = -1) As String
Dim c As String, cde As Integer
If pos < 0 Then pos = Len(s)
If pos = 0 Then
Encode = ""
Else
c = Mid(s, pos, 1)
cde = InStr("abcdefghijklmnopqrstuvwxyz", c)
Encode = Encode(s, pos - 1) & IIf(cde, cde, c)
End If
End Function
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom