Để 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é
Vào VBA, bấm Ctrl + G mở cửa số Immediate, gõ vào dòng lệnh: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.
?UCase("á") = "Á"
Nếu mình làm được cái vụ "thoải mái" này thì mình ngon lành "gần bằng" với Phạm Kim Long rồi đó hen!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ái
khà khà, Thầy nghiên cứu xemVào VBA, bấm Ctrl + G mở cửa số Immediate, gõ vào dòng lệnh:
Enter phát, xem kết quả và tự rút ra kết luậnMã:?UCase("á") = "Á"
--------------------------------------------
Nếu mình làm được cái vụ "thoải mái" này thì mình ngon lành "gần bằng" với Phạm Kim Long rồi đó hen!
nhưng mã "á" = 7854 còn "Á" =7855 là sao thầy?. không khác nhau sao? vẫn chưa hiểu chỗ đó.Vào VBA, bấm Ctrl + G mở cửa số Immediate, gõ vào dòng lệnh:
Enter phát, xem kết quả và tự rút ra kết luậnMã:?UCase("á") = "Á"
--------------------------------------------
Nếu mình làm được cái vụ "thoải mái" này thì mình ngon lành "gần bằng" với Phạm Kim Long rồi đó hen!
bỏ bớt phần chữ in và thêm 1 dòng lệnh với Ucase xem saonhưng mã "á" = 7854 còn "Á" =7855 là sao thầy?. không khác nhau sao? vẫn chưa hiểu chỗ đó.
đúng là ucase sẽ bằng nhau nhưng sau khi chuyển lại chuyển luôn sang chữ thường hay chữ hoa hết sao thầy?
Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String
Dim Nguon As Variant, KetQua As Variant, a, b
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)))
mTex = Replace(mTex, UCase(Nguon(i)), UCase(ChrW$(KetQua(i))))
Next i
TU = mTex
End Function
mãi mới thấy bác ghé thămbỏ bớt phần chữ in và thêm 1 dòng lệnh với Ucase xem saoMã:Function TU(ByVal mTex As String, Optional Bo As Byte = 1) As String Dim Nguon As Variant, KetQua As Variant, a, b 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))) mTex = Replace(mTex, UCase(Nguon(i)), UCase(ChrW$(KetQua(i)))) Next i TU = mTex End Function
Bài 24 chính là điều tôi muốn nóinhưng mã "á" = 7854 còn "Á" =7855 là sao thầy?. không khác nhau sao? vẫn chưa hiểu chỗ đó.
đúng là ucase sẽ bằng nhau nhưng sau khi chuyển lại thì nó chuyển thành chữ thường, chữ hoa, hay thành toàn bộ chữ thường, hay toàn bộ chữ hoa vậy thầy.
Hình như cái hàm UNItoVBA là của tôi thì phả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é
Cũng trong topic trên có bài sắp xếp lại chuỗi nhập cho đúng chuẩn Telex trước khi chuyển.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ái
xin lỗi thầy nhé, e nhớ nhầm với hàm UniConvert của thầy ndu :vHình như cái hàm UNItoVBA là của tôi thì phải)
http://www.giaiphapexcel.com/diendan/threads/tập-hợp-hÀm-tỰ-tẠo-để-làm-thư-viện-hàm.50873/page-3#post-325712
Cũng trong topic trên có bài sắp xếp lại chuỗi nhập cho đúng chuẩn Telex trước khi chuyển.
chắc thế này được rồi thầy nhỉ, không biết có chạy nhanh hay không :VBài 24 chính là điều tôi muốn nói
Ngoài ra có 2 góp ý nhỏ:
- Với hằng số bạn nên viết hoa toàn bộ các ký tự nhé
- Với tên biến: Hoặc là tiếng Việt, hoặc là tiếng Anh toàn bộ. Đừng lộn xộn khi tiếng Việt lúc lại tiếng Anh, nhìn kỳ cục lắm!
Option Explicit
Const mUNICODE = "7845-7847-7849-7851-7853-7855-7857-7859-7861-7863-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-224-225-7843-227-7841-226-259-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"
Const mTELEX = "aas-aaf-aar-aax-aaj-aws-awf-awr-awx-awj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-af-as-ar-ax-aj-aa-aw-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"
Const mVNI = "a61-a62-a63-a64-a65-a81-a82-a83-a84-a85-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-a2-a1-a3-a4-a5-a6-a8-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"
Const mXOADAU = "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"
Function ChuyenMaTiengViet(ByVal txt As String, ByVal MaNguon As String, Optional ByVal MaDich As String = "") As String
Dim Nguon As Variant, Dich As Variant, i As Byte
If InStr(UCase(MaNguon), "T") > 0 Then
Nguon = Split(mTELEX, "-")
ElseIf InStr(UCase(MaNguon), "U") > 0 Then
Nguon = Split(mUNICODE, "-")
ElseIf InStr(UCase(MaNguon), "V") > 0 Then
Nguon = Split(mVNI, "-")
End If
If InStr(UCase(MaDich), "T") > 0 Then
Dich = Split(mTELEX, "-")
ElseIf InStr(UCase(MaDich), "U") > 0 Then
Dich = Split(mUNICODE, "-")
ElseIf InStr(UCase(MaDich), "V") > 0 Then
Dich = Split(mVNI, "-")
Else
Dich = Split(mXOADAU, "-")
End If
If InStr(UCase(MaNguon), "U") > 0 Then
For i = 0 To UBound(Nguon)
txt = Replace(txt, ChrW(Nguon(i)), Dich(i))
txt = Replace(txt, UCase(ChrW(Nguon(i))), UCase(Dich(i)))
Next i
ElseIf InStr(UCase(MaDich), "U") > 0 Then
For i = 0 To UBound(Nguon)
txt = Replace(txt, Nguon(i), ChrW$(Dich(i)))
txt = Replace(txt, UCase(Nguon(i)), UCase(ChrW$(Dich(i))))
Next i
Else
For i = 0 To UBound(Nguon)
txt = Replace(txt, Nguon(i), Dich(i))
txt = Replace(txt, UCase(Nguon(i)), UCase(Dich(i)))
Next i
End If
ChuyenMaTiengViet = txt
End Function
Nhanh chậm chưa bàn đến. Vấn đề là tôi thấy bạn thường viết các tools để phục vụ cho công việc nào đó. Đã là tools thì sẽ có nhiều người dùng đến nên ngoài việc trau chuốt thuật toán thì bạn cũng nên hướng đến sự chuyên nghiệp trong cách trình bày!chắc thế này được rồi thầy nhỉ, không biết có chạy nhanh hay không :V
Mã:Option Explicit Const mUNICODE = "7845-7847-7849-7851-7853-7855-7857-7859-7861-7863-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-224-225-7843-227-7841-226-259-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" Const mTELEX = "aas-aaf-aar-aax-aaj-aws-awf-awr-awx-awj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-af-as-ar-ax-aj-aa-aw-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" Const mVNI = "a61-a62-a63-a64-a65-a81-a82-a83-a84-a85-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-a2-a1-a3-a4-a5-a6-a8-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" Const mXOADAU = "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" Function ChuyenMaTiengViet(ByVal txt As String, ByVal MaNguon As String, Optional ByVal MaDich As String = "") As String Dim Nguon As Variant, Dich As Variant, i As Byte If InStr(UCase(MaNguon), "T") > 0 Then Nguon = Split(mTELEX, "-") ElseIf InStr(UCase(MaNguon), "U") > 0 Then Nguon = Split(mUNICODE, "-") ElseIf InStr(UCase(MaNguon), "V") > 0 Then Nguon = Split(mVNI, "-") End If If InStr(UCase(MaDich), "T") > 0 Then Dich = Split(mTELEX, "-") ElseIf InStr(UCase(MaDich), "U") > 0 Then Dich = Split(mUNICODE, "-") ElseIf InStr(UCase(MaDich), "V") > 0 Then Dich = Split(mVNI, "-") Else Dich = Split(mXOADAU, "-") End If If InStr(UCase(MaNguon), "U") > 0 Then For i = 0 To UBound(Nguon) txt = Replace(txt, ChrW(Nguon(i)), Dich(i)) txt = Replace(txt, UCase(ChrW(Nguon(i))), UCase(Dich(i))) Next i ElseIf InStr(UCase(MaDich), "U") > 0 Then For i = 0 To UBound(Nguon) txt = Replace(txt, Nguon(i), ChrW$(Dich(i))) txt = Replace(txt, UCase(Nguon(i)), UCase(ChrW$(Dich(i)))) Next i Else For i = 0 To UBound(Nguon) txt = Replace(txt, Nguon(i), Dich(i)) txt = Replace(txt, UCase(Nguon(i)), UCase(Dich(i))) Next i End If ChuyenMaTiengViet = txt End Function
đọc bài của bác làm em nghĩ đến cái phát hiện ngôn ngữ của google, vậy mình tạo hàm phát kiểu kiểu gõ rồi tự in raNhanh chậm chưa bàn đến. Vấn đề là tôi thấy bạn thường viết các tools để phục vụ cho công việc nào đó. Đã là tools thì sẽ có nhiều người dùng đến nên ngoài việc trau chuốt thuật toán thì bạn cũng nên hướng đến sự chuyên nghiệp trong cách trình bày!
Cũng không dễ ăn vậy đâu! Nếu mình làm được, chắc google nó "hốt" rồiđọc bài của bác làm em nghĩ đến cái phát hiện ngôn ngữ của google, vậy mình tạo hàm phát kiểu kiểu gõ rồi tự in ra![]()
Giờ ngồi trên cầu gió mát quá thông não thầy ạ. Nhìn kỹ lại. Có 1 hàm thì mắc gì khai báo biến const bên ngoài cho nó chiếm bộ nhớ. "Lôi cổ" nó vào trong hàm luôn cho gọn hơn thầy nhỉ.Nhanh chậm chưa bàn đến. Vấn đề là tôi thấy bạn thường viết các tools để phục vụ cho công việc nào đó. Đã là tools thì sẽ có nhiều người dùng đến nên ngoài việc trau chuốt thuật toán thì bạn cũng nên hướng đến sự chuyên nghiệp trong cách trình bày!
Nói thật có đôi lúc tôi nghĩ ra thuật toán chỉ trong vài phút nhưng cứ ngồi sửa đi sửa lại hàng chục lần về cách trình bày, đặt tên biến mà vẫn cảm thấy chưa vừa ý. Hiện tại lúc rảnh rỗi, tôi lục lại những code viết hàng chục năm trước ra xem rồi chỉnh sửa lại (chủ yếu về cách trình bày)
Luôn luôn cảm thấy không hài lòng với những gì mình làm được là điều giúp ta phát triển bản thân
Dùng hàm tự tạo trong bảng tính Excel, khi thao tác trên bảng tính thì code chạy lại và vẫn phải sử dụng bộ nhớ, nếu đưa vào Function sẽ tạo vùng nhớ cho các biến rất nhiều lần, không hiểu máy tính xử lý ra sao, có lần mình bị thiếu bộ nhớ và chạy rất chậm, đưa ra ngoài thì chạy rất nhẹGiờ ngồi trên cầu gió mát quá thông não thầy ạ. Nhìn kỹ lại. Có 1 hàm thì mắc gì khai báo biến const bên ngoài cho nó chiếm bộ nhớ. "Lôi cổ" nó vào trong hàm luôn cho gọn hơn thầy nhỉ.
Dùng hàm tự tạo trong bảng tính Excel, khi thao tác trên bảng tính thì code chạy lại và vẫn phải sử dụng bộ nhớ, nếu đưa vào Function sẽ tạo vùng nhớ cho các biến rất nhiều lần, không hiểu máy tính xử lý ra sao, có lần mình bị thiếu bộ nhớ và chạy rất chậm, đưa ra ngoài thì chạy rất nhẹ
Tại bạn ôm đồm nhiều thứ trong hàm nên "cảm thấy" vậy! Nếu là tôi thì:Giờ ngồi trên cầu gió mát quá thông não thầy ạ. Nhìn kỹ lại. Có 1 hàm thì mắc gì khai báo biến const bên ngoài cho nó chiếm bộ nhớ. "Lôi cổ" nó vào trong hàm luôn cho gọn hơn thầy nhỉ.
.
Anh ơi em muốn từ:chắc thế này được rồi thầy nhỉ, không biết có chạy nhanh hay không :V
Mã:Option Explicit Const mUNICODE = "7845-7847-7849-7851-7853-7855-7857-7859-7861-7863-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-224-225-7843-227-7841-226-259-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" Const mTELEX = "aas-aaf-aar-aax-aaj-aws-awf-awr-awx-awj-ees-eef-eer-eex-eej-oos-oof-oor-oox-ooj-ows-owf-owr-owx-owj-uws-uwf-uwr-uwx-uwj-af-as-ar-ax-aj-aa-aw-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" Const mVNI = "a61-a62-a63-a64-a65-a81-a82-a83-a84-a85-e61-e62-e63-e64-e65-o61-o62-o63-o64-o65-o71-o72-o73-o74-o75-u71-u72-u73-u74-u75-a2-a1-a3-a4-a5-a6-a8-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" Const mXOADAU = "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" Function ChuyenMaTiengViet(ByVal txt As String, ByVal MaNguon As String, Optional ByVal MaDich As String = "") As String Dim Nguon As Variant, Dich As Variant, i As Byte If InStr(UCase(MaNguon), "T") > 0 Then Nguon = Split(mTELEX, "-") ElseIf InStr(UCase(MaNguon), "U") > 0 Then Nguon = Split(mUNICODE, "-") ElseIf InStr(UCase(MaNguon), "V") > 0 Then Nguon = Split(mVNI, "-") End If If InStr(UCase(MaDich), "T") > 0 Then Dich = Split(mTELEX, "-") ElseIf InStr(UCase(MaDich), "U") > 0 Then Dich = Split(mUNICODE, "-") ElseIf InStr(UCase(MaDich), "V") > 0 Then Dich = Split(mVNI, "-") Else Dich = Split(mXOADAU, "-") End If If InStr(UCase(MaNguon), "U") > 0 Then For i = 0 To UBound(Nguon) txt = Replace(txt, ChrW(Nguon(i)), Dich(i)) txt = Replace(txt, UCase(ChrW(Nguon(i))), UCase(Dich(i))) Next i ElseIf InStr(UCase(MaDich), "U") > 0 Then For i = 0 To UBound(Nguon) txt = Replace(txt, Nguon(i), ChrW$(Dich(i))) txt = Replace(txt, UCase(Nguon(i)), UCase(ChrW$(Dich(i)))) Next i Else For i = 0 To UBound(Nguon) txt = Replace(txt, Nguon(i), Dich(i)) txt = Replace(txt, UCase(Nguon(i)), UCase(Dich(i))) Next i End If ChuyenMaTiengViet = txt End Function
cái đấy có vẻ hơi khó đấy bạnAnh ơi em muốn từ:
Đà Nẵng đổi thành DDaf Nawngx, là ý nghĩ để dấu ở cuối được không anh.
Em cần để làm mã đố ạ.
dạ anh theo yêu cầu bên em thì chứ Dương sẽ được viết như sau Duwowng ạcái đấy có vẻ hơi khó đấy bạn
nếu gõ như vậy bạn cho mình hỏi chữ này nếu theo cách gõ bạn nêu thì kết quả như thế nào. để kết quả đúng thì gõ ra sao
chữ Dương theo bạn gõ tự do thì gõ ra sao để chuyển về đúng với chữ Dương, 1 chữ w cuối cùng hay 2 chữ. nếu 2 chữ thì liệu khi chuyển về có đúng kết quả không
tôi có tham khảo bài bên này, code chuyển kiểu tự do sang kiểu chuẩn thì kết quả trả về không chính xác
Hoàn chỉnh công việc dở dang 6 năm trước.Anh ơi em muốn từ:
Đà Nẵng đổi thành DDaf Nawngx, là ý nghĩ để dấu ở cuối được không anh.
Em cần để làm mã đố ạ.