Để gõ được chữ "Đ" theo kiểu Telex có những cách sau:Chào các bác, em muốn đổi các chữ kiểu telex giống như sau: "DDaf Nawxng" thành "Đà Nẵng"
Các bác giải giúp em ạ, xin cảm ơn mọi người.
Bác có cách nào không ạ, xài code thôi chứ không mong hàm gì cảĐể gõ được chữ "Đ" theo kiểu Telex có những cách sau:
Dd
DD
D {một nguyên âm bất kỳ} d
Với chữ "à" gõ theo kiểu Telex có những cách sau:
af
a {một hoặc nhiều hơn một hoặc toàn bộ các ký tự (srxjz)} f
Cái thứ 2 chắc khó ăn thôi chơi kiểu 1 được rồiĐể gõ được chữ "Đ" theo kiểu Telex có những cách sau:
Dd
DD
D {một nguyên âm bất kỳ} d
Với chữ "à" gõ theo kiểu Telex có những cách sau:
af
a {một hoặc nhiều hơn một hoặc toàn bộ các ký tự (srxjz)} f
Bạn lập một bảng quy tắc gõ cho tất cả các chữ cái (bao gồm có cả dấu), ví dụ:Cái thứ 2 chắc khó ăn thôi chơi kiểu 1 được rồi![]()
Như kiểu gõ này:Chào các bác, em muốn đổi các chữ kiểu telex giống như sau: "DDaf Nawxng" thành "Đà Nẵng"
Các bác giải giúp em ạ, xin cảm ơn mọi người.
Buwowsc towsi ddefo ngang bosng xees taf
Buowstowsiddefongangbosngxeestaf
cảm ơn bác quan tâm ạ, cái dính trùm thì chịu ạ, khó quá thì mình tìm giải pháp đơn giản hơn ^^Như kiểu gõ này:
còn ráng chuyển đổi được, chứ còn kiểu này:Mã:Buwowsc towsi ddefo ngang bosng xees taf
Dính 1 chùm vậy thì.. thuaMã:Buowstowsiddefongangbosngxeestaf
nếu bạn muốn dùng theo cách gõ của "ANH" ndu nói thì tham khảo cái này (theo mong ước của ẢNH- được trẻ hóa) :vChào các bác, em muốn đổi các chữ kiểu telex giống như sau: "DDaf Nawxng" thành "Đà Nẵng"
Các bác giải giúp em ạ, xin cảm ơn mọi người.
Option Explicit
Const sChrW = "7855-7857-7859-7861-7863-7845-7847-7849-7851-7853-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-7854-7856-7858-7860-7862-7844-7846-7848-7850-7852-7870-7872-7874-7876-7878-7888-7890-7892-7894-7896-7898-7900-7902-7904-7906-7912-7914-7916-7918-7920-225-224-7843-227-7841-259-226-273-233-232-7867-7869-7865-234-237-236-7881-297-7883-243-242-7887-245-7885-244-417-250-249-7911-361-7909-432-253-7923-7927-7929-7925-193-192-7842-195-7840-258-194-272-201-200-7866-7868-7864-202-205-204-7880-296-7882-211-210-7886-213-7884-212-416-218-217-7910-360-7908-431-221-7922-7926-7928-7924-10"
Const sTelex = "aws-awf-awr-awx-awj-aas-aaf-aar-aax-aaj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-AWS-AWF-AWR-AWX-AWJ-AAS-AAF-AAR-AAX-AAJ-EES-EEF-EER-EEX-EEJ-OOS-OOF-OOR-OOX-OOJ-OWS-OWF-OWR-OWX-OWJ-UWS-UWF-UWR-UWX-UWJ-as-af-ar-ax-aj-aw-aa-dd-es-ef-er-ex-ej-ee-is-if-ir-ix-ij-os-of-or-ox-oj-oo-ow-us-uf-ur-ux-uj-uw-ys-yf-yr-yx-yj-AS-AF-AR-AX-AJ-AW-AA-DD-ES-EF-ER-EX-EJ-EE-IS-IF-IR-IX-IJ-OS-OF-OR-OX-OJ-OO-OW-US-UF-UR-UX-UJ-UW-YS-YF-YR-YX-YJ- vbE "
Const sVni = "a81-a82-a83-a84-a85-a61-a62-a63-a64-a65-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-A81-A82-A83-A84-A85-A61-A62-A63-A64-A65-E61-E62-E63-E64-E65-O61-O62-O63-O64-O65-O71-O72-O73-O74-O75-U71-U72-U73-U74-U75-a1-a2-a3-a4-a5-a8-a6-d9-e1-e2-e3-e4-e5-e6-i1-i2-i3-i4-i5-o1-o2-o3-o4-o5-o6-o7-u1-u2-u3-u4-u5-u7-y1-y2-y3-y4-y5-A1-A2-A3-A4-A5-A7-A6-D9-E1-E2-E3-E4-E5-E6-I1-I2-I3-I4-I5-O1-O2-O3-O4-O5-O6-O7-U1-U2-U3-U4-U5-U7-Y1-Y2-Y3-Y4-Y5- vbE "
Const sXoaDau = "a-a-a-a-a-a-a-a-a-a-e-e-e-e-e-o-o-o-o-o-o-o-o-o-o-u-u-u-u-u-A-A-A-A-A-A-A-A-A-A-E-E-E-E-E-O-O-O-O-O-O-O-O-O-O-U-U-U-U-U-a-a-a-a-a-a-a-d-e-e-e-e-e-e-i-i-i-i-i-o-o-o-o-o-o-o-u-u-u-u-u-u-y-y-y-y-y-A-A-A-A-A-A-A-D-E-E-E-E-E-E-I-I-I-I-I-O-O-O-O-O-O-O-U-U-U-U-U-U-Y-Y-Y-Y-Y-"
Function UT(ByVal mTex As String, Optional Bo As Byte = 1) As String 'chuyen kieu go unicode thanh kieu go telex
Dim i As Long
Nguon = Split(sChrW, "-"): KetQua = Split(sTelex, "-")
For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo
mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i))
Next i
UT = mTex
End Function
Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go telex thanh unicode
Dim i As Long
Nguon = Split(sTelex, "-"): KetQua = Split(sChrW, "-")
For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo
mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i)))
Next i
TU = mTex
End Function
Function UV(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go unicode thanh kieu go vni
Dim i As Long
Nguon = Split(sChrW, "-"): KetQua = Split(sVni, "-")
For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo
mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i))
Next i
UV = mTex
End Function
Function VU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go vni thanh unicode
Dim i As Long
Nguon = Split(sVni, "-"): KetQua = Split(sChrW, "-")
For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo
mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i)))
Next i
VU = mTex
End Function
Function mTV(ByVal mTex As String, Optional Bo As Byte = 1) As String'xoa dau tieng viet
Dim i As Long
Nguon = Split(sChrW, "-"): KetQua = Split(sXoaDau, "-")
For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo
mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i))
Next i
mTV = mTex
End Function
dạ cảm ơn bác nhiều lắm ạ !nếu bạn muốn dùng theo cách gõ của "ANH" ndu nói thì tham khảo cái này (theo mong ước của ẢNH- được trẻ hóa) :v
=UT("Thí nghiệm") => This nghieejmMã:Option Explicit Const sChrW = "7855-7857-7859-7861-7863-7845-7847-7849-7851-7853-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-7854-7856-7858-7860-7862-7844-7846-7848-7850-7852-7870-7872-7874-7876-7878-7888-7890-7892-7894-7896-7898-7900-7902-7904-7906-7912-7914-7916-7918-7920-225-224-7843-227-7841-259-226-273-233-232-7867-7869-7865-234-237-236-7881-297-7883-243-242-7887-245-7885-244-417-250-249-7911-361-7909-432-253-7923-7927-7929-7925-193-192-7842-195-7840-258-194-272-201-200-7866-7868-7864-202-205-204-7880-296-7882-211-210-7886-213-7884-212-416-218-217-7910-360-7908-431-221-7922-7926-7928-7924-10" Const sTelex = "aws-awf-awr-awx-awj-aas-aaf-aar-aax-aaj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-AWS-AWF-AWR-AWX-AWJ-AAS-AAF-AAR-AAX-AAJ-EES-EEF-EER-EEX-EEJ-OOS-OOF-OOR-OOX-OOJ-OWS-OWF-OWR-OWX-OWJ-UWS-UWF-UWR-UWX-UWJ-as-af-ar-ax-aj-aw-aa-dd-es-ef-er-ex-ej-ee-is-if-ir-ix-ij-os-of-or-ox-oj-oo-ow-us-uf-ur-ux-uj-uw-ys-yf-yr-yx-yj-AS-AF-AR-AX-AJ-AW-AA-DD-ES-EF-ER-EX-EJ-EE-IS-IF-IR-IX-IJ-OS-OF-OR-OX-OJ-OO-OW-US-UF-UR-UX-UJ-UW-YS-YF-YR-YX-YJ- vbE " Const sVni = "a81-a82-a83-a84-a85-a61-a62-a63-a64-a65-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-A81-A82-A83-A84-A85-A61-A62-A63-A64-A65-E61-E62-E63-E64-E65-O61-O62-O63-O64-O65-O71-O72-O73-O74-O75-U71-U72-U73-U74-U75-a1-a2-a3-a4-a5-a8-a6-d9-e1-e2-e3-e4-e5-e6-i1-i2-i3-i4-i5-o1-o2-o3-o4-o5-o6-o7-u1-u2-u3-u4-u5-u7-y1-y2-y3-y4-y5-A1-A2-A3-A4-A5-A7-A6-D9-E1-E2-E3-E4-E5-E6-I1-I2-I3-I4-I5-O1-O2-O3-O4-O5-O6-O7-U1-U2-U3-U4-U5-U7-Y1-Y2-Y3-Y4-Y5- vbE " Const sXoaDau = "a-a-a-a-a-a-a-a-a-a-e-e-e-e-e-o-o-o-o-o-o-o-o-o-o-u-u-u-u-u-A-A-A-A-A-A-A-A-A-A-E-E-E-E-E-O-O-O-O-O-O-O-O-O-O-U-U-U-U-U-a-a-a-a-a-a-a-d-e-e-e-e-e-e-i-i-i-i-i-o-o-o-o-o-o-o-u-u-u-u-u-u-y-y-y-y-y-A-A-A-A-A-A-A-D-E-E-E-E-E-E-I-I-I-I-I-O-O-O-O-O-O-O-U-U-U-U-U-U-Y-Y-Y-Y-Y-" Function UT(ByVal mTex As String, Optional Bo As Byte = 1) As String 'chuyen kieu go unicode thanh kieu go telex Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sTelex, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UT = mTex End Function Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go telex thanh unicode Dim i As Long Nguon = Split(sTelex, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i TU = mTex End Function Function UV(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go unicode thanh kieu go vni Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sVni, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UV = mTex End Function Function VU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go vni thanh unicode Dim i As Long Nguon = Split(sVni, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i VU = mTex End Function Function mTV(ByVal mTex As String, Optional Bo As Byte = 1) As String'xoa dau tieng viet Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sXoaDau, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i mTV = mTex End Function
=TU("This nghieejm") => Thí nghiệm
=UV("Thí nghiệm") => Thi1 nghie65m
=VU("Thi1 nghie65m") => Thí nghiệm
=mTV("Thí nghiệm") => Thi nghiem
code không áp dụng cho tiếng anh nha bạn. This thì nó sẽ thành Thí chứ không thông minh đến nỗi nhận biết nó là tiếng anh mà giữ lại nguyên mẫu đâu, khuyến khích chuyển thành kiểu VNI thì hay hơn
Em không rành về VBA lắm, em thử trong file nó báo lỗi không chạy được anh à.nếu bạn muốn dùng theo cách gõ của "ANH" ndu nói thì tham khảo cái này (theo mong ước của ẢNH- được trẻ hóa) :v
=UT("Thí nghiệm") => This nghieejmMã:Option Explicit Const sChrW = "7855-7857-7859-7861-7863-7845-7847-7849-7851-7853-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-7854-7856-7858-7860-7862-7844-7846-7848-7850-7852-7870-7872-7874-7876-7878-7888-7890-7892-7894-7896-7898-7900-7902-7904-7906-7912-7914-7916-7918-7920-225-224-7843-227-7841-259-226-273-233-232-7867-7869-7865-234-237-236-7881-297-7883-243-242-7887-245-7885-244-417-250-249-7911-361-7909-432-253-7923-7927-7929-7925-193-192-7842-195-7840-258-194-272-201-200-7866-7868-7864-202-205-204-7880-296-7882-211-210-7886-213-7884-212-416-218-217-7910-360-7908-431-221-7922-7926-7928-7924-10" Const sTelex = "aws-awf-awr-awx-awj-aas-aaf-aar-aax-aaj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-AWS-AWF-AWR-AWX-AWJ-AAS-AAF-AAR-AAX-AAJ-EES-EEF-EER-EEX-EEJ-OOS-OOF-OOR-OOX-OOJ-OWS-OWF-OWR-OWX-OWJ-UWS-UWF-UWR-UWX-UWJ-as-af-ar-ax-aj-aw-aa-dd-es-ef-er-ex-ej-ee-is-if-ir-ix-ij-os-of-or-ox-oj-oo-ow-us-uf-ur-ux-uj-uw-ys-yf-yr-yx-yj-AS-AF-AR-AX-AJ-AW-AA-DD-ES-EF-ER-EX-EJ-EE-IS-IF-IR-IX-IJ-OS-OF-OR-OX-OJ-OO-OW-US-UF-UR-UX-UJ-UW-YS-YF-YR-YX-YJ- vbE " Const sVni = "a81-a82-a83-a84-a85-a61-a62-a63-a64-a65-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-A81-A82-A83-A84-A85-A61-A62-A63-A64-A65-E61-E62-E63-E64-E65-O61-O62-O63-O64-O65-O71-O72-O73-O74-O75-U71-U72-U73-U74-U75-a1-a2-a3-a4-a5-a8-a6-d9-e1-e2-e3-e4-e5-e6-i1-i2-i3-i4-i5-o1-o2-o3-o4-o5-o6-o7-u1-u2-u3-u4-u5-u7-y1-y2-y3-y4-y5-A1-A2-A3-A4-A5-A7-A6-D9-E1-E2-E3-E4-E5-E6-I1-I2-I3-I4-I5-O1-O2-O3-O4-O5-O6-O7-U1-U2-U3-U4-U5-U7-Y1-Y2-Y3-Y4-Y5- vbE " Const sXoaDau = "a-a-a-a-a-a-a-a-a-a-e-e-e-e-e-o-o-o-o-o-o-o-o-o-o-u-u-u-u-u-A-A-A-A-A-A-A-A-A-A-E-E-E-E-E-O-O-O-O-O-O-O-O-O-O-U-U-U-U-U-a-a-a-a-a-a-a-d-e-e-e-e-e-e-i-i-i-i-i-o-o-o-o-o-o-o-u-u-u-u-u-u-y-y-y-y-y-A-A-A-A-A-A-A-D-E-E-E-E-E-E-I-I-I-I-I-O-O-O-O-O-O-O-U-U-U-U-U-U-Y-Y-Y-Y-Y-" Function UT(ByVal mTex As String, Optional Bo As Byte = 1) As String 'chuyen kieu go unicode thanh kieu go telex Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sTelex, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UT = mTex End Function Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go telex thanh unicode Dim i As Long Nguon = Split(sTelex, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i TU = mTex End Function Function UV(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go unicode thanh kieu go vni Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sVni, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UV = mTex End Function Function VU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go vni thanh unicode Dim i As Long Nguon = Split(sVni, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i VU = mTex End Function Function mTV(ByVal mTex As String, Optional Bo As Byte = 1) As String'xoa dau tieng viet Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sXoaDau, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i mTV = mTex End Function
=TU("This nghieejm") => Thí nghiệm
=UV("Thí nghiệm") => Thi1 nghie65m
=VU("Thi1 nghie65m") => Thí nghiệm
=mTV("Thí nghiệm") => Thi nghiem
code không áp dụng cho tiếng anh nha bạn. This thì nó sẽ thành Thí chứ không thông minh đến nỗi nhận biết nó là tiếng anh mà giữ lại nguyên mẫu đâu, khuyến khích chuyển thành kiểu VNI thì hay hơn
dạ cố định kiểu anh ơi, ví dụ : buowsc là mũ ơ trước rồi mới đến dấu sắcĐể làm bài này, bạn cần phân tích ra nhiều công việc.
Công việc thứ nhất là viết một hàm đọc từ. Hàm này phải đọc được thế nào là 1 từ. Regex có thể làm chuyện này dễ dàng.
Công việc thứ hai là nhận định từ có phải là telex. Ví dụ loo, đổi sang tiếng Việt là lô; nhưng làm sao bạn biết được nó khong phải là tiếng Anh, vì từ này tiếng anh có nghĩa là cái toa lét.
Ví dụ bạn chấp nhận rằng "đổi nhầm ráng chịu" thì ta có thể bắt đầu công việc thứ ba:
Tiếng Việt có luật đặc biệt rằng một từ không bao giờ có 2 nguyên âm giống nhau (trừ trường hợp oo ở trên)
Như vậy việc đầu tiên của bạn là duyệt từng ký tự của từ, hễ có 2 a thì nó là â, 2 e thì là ê, 2 o thì là ô, nhưng có 3 a thì lại coi đó là tiếng Anh. Nếu gặp xoong thì ráng chịu. Bạn phải tự đặt luật rằng xoong, xonog thì đổi thành xông và xooong thì đổi thành xoong.
Kế đó là xét các ký tự nằm không đúng chỗ.; tiếng Việt có một số phụ âm bắt buộc phải ở đầu từ.
1. d phải ở đầu từ, nếu nó nằm ở vị trí khác thì chỉ có thể dùng để biến cái d ở đầu từ.
2. s cũng phải ở đầu từ, nếu nó nằm ở vị tri khác thì nó là dấu sắc.
3. ...
Ở công việc thứ ba này, bạn phải lập ra một bảng quy luật đầy đủ rồi từ đó mới có thể dùng bảng quy luật để lập giải thuật và viết code
bạn thông cảm, lấy code cũ hồi xưa viết chưa khai báoEm không rành về VBA lắm, em thử trong file nó báo lỗi không chạy được anh à.
Anh thử trong file gửi em xem được không.
Mấy cái hằng số sao bạn vừa khai báo chữ thường vừa CHỮ HOA chi vậy? Tôi nghĩ chỉ cần dạng chữ thường là đủ, bởi trong VBA hàm UCase hỗ trợ Unicode mànếu bạn muốn dùng theo cách gõ của "ANH" ndu nói thì tham khảo cái này (theo mong ước của ẢNH- được trẻ hóa) :v
=UT("Thí nghiệm") => This nghieejmMã:Option Explicit Const sChrW = "7855-7857-7859-7861-7863-7845-7847-7849-7851-7853-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-7854-7856-7858-7860-7862-7844-7846-7848-7850-7852-7870-7872-7874-7876-7878-7888-7890-7892-7894-7896-7898-7900-7902-7904-7906-7912-7914-7916-7918-7920-225-224-7843-227-7841-259-226-273-233-232-7867-7869-7865-234-237-236-7881-297-7883-243-242-7887-245-7885-244-417-250-249-7911-361-7909-432-253-7923-7927-7929-7925-193-192-7842-195-7840-258-194-272-201-200-7866-7868-7864-202-205-204-7880-296-7882-211-210-7886-213-7884-212-416-218-217-7910-360-7908-431-221-7922-7926-7928-7924-10" Const sTelex = "aws-awf-awr-awx-awj-aas-aaf-aar-aax-aaj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-AWS-AWF-AWR-AWX-AWJ-AAS-AAF-AAR-AAX-AAJ-EES-EEF-EER-EEX-EEJ-OOS-OOF-OOR-OOX-OOJ-OWS-OWF-OWR-OWX-OWJ-UWS-UWF-UWR-UWX-UWJ-as-af-ar-ax-aj-aw-aa-dd-es-ef-er-ex-ej-ee-is-if-ir-ix-ij-os-of-or-ox-oj-oo-ow-us-uf-ur-ux-uj-uw-ys-yf-yr-yx-yj-AS-AF-AR-AX-AJ-AW-AA-DD-ES-EF-ER-EX-EJ-EE-IS-IF-IR-IX-IJ-OS-OF-OR-OX-OJ-OO-OW-US-UF-UR-UX-UJ-UW-YS-YF-YR-YX-YJ- vbE " Const sVni = "a81-a82-a83-a84-a85-a61-a62-a63-a64-a65-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-A81-A82-A83-A84-A85-A61-A62-A63-A64-A65-E61-E62-E63-E64-E65-O61-O62-O63-O64-O65-O71-O72-O73-O74-O75-U71-U72-U73-U74-U75-a1-a2-a3-a4-a5-a8-a6-d9-e1-e2-e3-e4-e5-e6-i1-i2-i3-i4-i5-o1-o2-o3-o4-o5-o6-o7-u1-u2-u3-u4-u5-u7-y1-y2-y3-y4-y5-A1-A2-A3-A4-A5-A7-A6-D9-E1-E2-E3-E4-E5-E6-I1-I2-I3-I4-I5-O1-O2-O3-O4-O5-O6-O7-U1-U2-U3-U4-U5-U7-Y1-Y2-Y3-Y4-Y5- vbE " Const sXoaDau = "a-a-a-a-a-a-a-a-a-a-e-e-e-e-e-o-o-o-o-o-o-o-o-o-o-u-u-u-u-u-A-A-A-A-A-A-A-A-A-A-E-E-E-E-E-O-O-O-O-O-O-O-O-O-O-U-U-U-U-U-a-a-a-a-a-a-a-d-e-e-e-e-e-e-i-i-i-i-i-o-o-o-o-o-o-o-u-u-u-u-u-u-y-y-y-y-y-A-A-A-A-A-A-A-D-E-E-E-E-E-E-I-I-I-I-I-O-O-O-O-O-O-O-U-U-U-U-U-U-Y-Y-Y-Y-Y-" Function UT(ByVal mTex As String, Optional Bo As Byte = 1) As String 'chuyen kieu go unicode thanh kieu go telex Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sTelex, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UT = mTex End Function Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go telex thanh unicode Dim i As Long Nguon = Split(sTelex, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i TU = mTex End Function Function UV(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go unicode thanh kieu go vni Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sVni, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i UV = mTex End Function Function VU(ByVal mTex As String, Optional Bo As Byte = 1) As String'chuyen kieu go vni thanh unicode Dim i As Long Nguon = Split(sVni, "-"): KetQua = Split(sChrW, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, Nguon(i), ChrW$(KetQua(i))) Next i VU = mTex End Function Function mTV(ByVal mTex As String, Optional Bo As Byte = 1) As String'xoa dau tieng viet Dim i As Long Nguon = Split(sChrW, "-"): KetQua = Split(sXoaDau, "-") For i = LBound(Nguon, 1) To UBound(Nguon, 1) - Bo mTex = Replace(mTex, ChrW$(Nguon(i)), KetQua(i)) Next i mTV = mTex End Function
=TU("This nghieejm") => Thí nghiệm
=UV("Thí nghiệm") => Thi1 nghie65m
=VU("Thi1 nghie65m") => Thí nghiệm
=mTV("Thí nghiệm") => Thi nghiem
code không áp dụng cho tiếng anh nha bạn. This thì nó sẽ thành Thí chứ không thông minh đến nỗi nhận biết nó là tiếng anh mà giữ lại nguyên mẫu đâu, khuyến khích chuyển thành kiểu VNI thì hay hơn
tại em thấy chữ á với chữ Á có 2 mã chrw khác nhau ấy thầy. hay là có mã cho từng dấu vậy thầy.Mấy cái hằng số sao bạn vừa khai báo chữ thường vừa CHỮ HOA chi vậy? Tôi nghĩ chỉ cần dạng chữ thường là đủ, bởi trong VBA hàm UCase hỗ trợ Unicode mà
nếu người dùng nhập kiểu Telex: Chuyeenr max thì sao? Unikey cho phép gỏ tương đối thoải máibạn thông cảm, lấy code cũ hồi xưa viết chưa khai báo
bạn xem file đính kèm nhé