viết hàm để sửa chữ trong Excel (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ngocthanhxuan

Thành viên mới
Tham gia
19/10/09
Bài viết
7
Được thích
0
có cách nào viết hàm tự động tìm tất cả các từ (không phải tìm chữ “thuý” không có thể là chữ "thuỳ" ) bị lỗi như vậy và nó tự sửa lại “thuý” thì thành "thúy", "thuỳ" thì thành "thùy".v..v...
oà, oá, oả, oã, oạ,
oè, oé, oẻ, oẽ, oẹ,
uỳ, uý, uỷ, uỹ, uỵ

thành

òa, óa, ỏa, õa, ọa,
òe, óe, ỏe, õe, ọe,
ùy, úy, ủy, ũy, ụy

P/S:Xin lỗi các thầy em là thành viên mới nên chưa rành nội quy nếu có post sai nhờ các thầy chuyển qua post đúng hộ em Cảm ơn
Xuân
 
đơn giản thôi, bằng cách bạn chọn hết nội dung (có thể nhấn Ctrl+A), xong nhấn Ctrl+H (sửa nội dung)
ở phần Find what: bạn gõ "uỳ"
ở phần Replace with: bạn gõ "ùy"
xong nhấn nút Replace all
thế là tất cả đã tự động sửa rồi đó, tương tự các chữ khác cũng vậy, tuy hơi thủ công 1 tí nhưng cũng đã giải quyết được vấn đề của bạn rồi đó.
bạn nào có cách xử ký tuyệt chiêu thì gởi vào để mọi người cùng tham khảo nhá!
 
Upvote 0
đơn giản thôi, bằng cách bạn chọn hết nội dung (có thể nhấn Ctrl+A), xong nhấn Ctrl+H (sửa nội dung)
ở phần Find what: bạn gõ "uỳ"
ở phần Replace with: bạn gõ "ùy"
xong nhấn nút Replace all
thế là tất cả đã tự động sửa rồi đó, tương tự các chữ khác cũng vậy, tuy hơi thủ công 1 tí nhưng cũng đã giải quyết được vấn đề của bạn rồi đó.
bạn nào có cách xử ký tuyệt chiêu thì gởi vào để mọi người cùng tham khảo nhá!

Dạ cám ơn thầy. Gõ như vậy lâu quá và phải chuyển kiểu gõ nữa. hồi nãy thầy tiến cũng đã chỉ em cách đó rồi rất good nhưng làm thủ công quá.
 
Upvote 0
ừ, thì hơi thủ công thật, nhưng mình cũng đã nói là giải pháp tình thế thôi mà, còn ai có tuyệt chiêu thì hãy tung lên đi cho mọi người cùng học hỏi nữa. he he --=0
 
Upvote 0
Dạ cám ơn thầy. Gõ như vậy lâu quá và phải chuyển kiểu gõ nữa. hồi nãy thầy tiến cũng đã chỉ em cách đó rồi rất good nhưng làm thủ công quá.
Tôi nghĩ thế này:
- Ta liệt kê 1 "danh mục" những từ cần phải thay thế vào 1 bảng
- Dùng code dò tìm trong Workbook (thậm chí có thể dò trên các file đang đóng) rồi lần lượt thay thế
Nếu bạn đưa file dử liệu lên thì tốt quá (nhớ không lầm thì tôi đã từng làm 1 bài dạng này: Tìm và thay thế trên nhiều file)
 
Upvote 0
Dưới giác độ người sử dụng bình thường, mình cho cách của Ndu là nhẹ nhàng nhất. Thực tế trước đây mình đã làm file thông báo tiền điện sử dụng cho các đơn vị nội bộ (Có 3 doanh nghiệp Trung Quốc). Trong file có phần đọc chữ số tiền bằng chữ Hán (Đọc chữ chứ không phải chuyển số). Mình không sao can thiệp được chữ Hán trong VBA nên cũng đã dùng bảng để đối chiếu thay thế. Ở đây cũng vậy, nó tránh được việc các loại Font khác nhau trong VBA nó cũng cho các mẫu tự khác nhau. Để sử lý được phải chuyển Code phức tạp lắm.
Nếu số lượng có hạn thì dùng hàm Substitute mình thấy kết quả cũng khả quan.
 
Upvote 0
Làm như anh NDU là tiện nhất.

Còn nếu bạn muốn Function thì đây bạn tham khảo thử: (Cái này mình kết hợp trong chuyển font chữ về thống nhất 1 cách bỏ dấu để tìm)
PHP:
Public Function SDUni(Str As String) As String
Dim Ma As String, MaLuu As String, i As Long, a As Long
a = 1
For i = a To Len(Str)
i = a
    Ma = Mid(Str, i, 2)
    MaLuu = Ma
    Select Case Ma
Case "oà": Ma = "òa": Case "OÀ": Ma = "ÒA": Case "Oà": Ma = "Òa": Case "oÀ": Ma = "òA"
Case "oá": Ma = "óa": Case "OÁ": Ma = "ÓA": Case "Oá": Ma = "Óa": Case "oÁ": Ma = "óA"
Case "o" & ChrW(7843): Ma = ChrW(7887) & "a": Case "O" & ChrW(7842): Ma = ChrW(7886) & "A": Case "O" & ChrW(7843): Ma = ChrW(7886) & "a": Case "o" & ChrW(7842): Ma = ChrW(7887) & "A"
Case "oã": Ma = "õa": Case "OÃ": Ma = "ÕA": Case "Oã": Ma = "Õa": Case "oÃ": Ma = "õA"
Case "o" & ChrW(7841): Ma = ChrW(7885) & "a": Case "O" & ChrW(7840): Ma = ChrW(7884) & "A": Case "O" & ChrW(7841): Ma = ChrW(7884) & "a": Case "o" & ChrW(7840): Ma = ChrW(7885) & "A"
Case "oè": Ma = "òe": Case "OÈ": Ma = "ÒE": Case "Oè": Ma = "Òe": Case "oÈ": Ma = "òE"
Case "oé": Ma = "óe": Case "OÉ": Ma = "ÓE": Case "Oé": Ma = "Óe": Case "oÉ": Ma = "óE"
Case "o" & ChrW(7867): Ma = ChrW(7887) & "e": Case "O" & ChrW(7866): Ma = ChrW(7886) & "E": Case "O" & ChrW(7867): Ma = ChrW(7886) & "e": Case "o" & ChrW(7866): Ma = ChrW(7887) & "E"
Case "o" & ChrW(7869): Ma = "õe": Case "O" & ChrW(7868): Ma = "ÕE": Case "O" & ChrW(7869): Ma = "Õe": Case "o" & ChrW(7868): Ma = "õE"
Case "o" & ChrW(7865): Ma = ChrW(7885) & "e": Case "O" & ChrW(7864): Ma = ChrW(7884) & "E": Case "O" & ChrW(7865): Ma = ChrW(7884) & "e": Case "o" & ChrW(7864): Ma = ChrW(7885) & "E"
Case "u" & ChrW(7923): Ma = "ùy": Case "U" & ChrW(7922): Ma = "ÙY": Case "U" & ChrW(7923): Ma = "Ùy": Case "u" & ChrW(7922): Ma = "ùY"
Case "uý": Ma = "úy": Case "UÝ": Ma = "ÚY": Case "Uý": Ma = "Úy": Case "uÝ": Ma = "úY"
Case "u" & ChrW(7927): Ma = ChrW(7911) & "y": Case "U" & ChrW(7926): Ma = ChrW(7910) & "Y": Case "U" & ChrW(7927): Ma = ChrW(7910) & "y": Case "u" & ChrW(7926): Ma = ChrW(7911) & "Y"
Case "u" & ChrW(7929): Ma = ChrW(361) & "y": Case "U" & ChrW(7928): Ma = ChrW(360) & "Y": Case "U" & ChrW(7929): Ma = ChrW(360) & "y": Case "u" & ChrW(7928): Ma = ChrW(361) & "Y"
Case "u" & ChrW(7925): Ma = ChrW(7909) & "y": Case "U" & ChrW(7924): Ma = ChrW(7908) & "Y": Case "U" & ChrW(7925): Ma = ChrW(7908) & "y": Case "u" & ChrW(7924): Ma = ChrW(7909) & "Y"

    End Select
    If Ma <> MaLuu Then
        SDUni = SDUni & Ma
        a = i + 2
    Else
        SDUni = SDUni & Mid(Str, i, 1)
        a = i + 1
    End If

Next i
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Em xin cám ơn thầy ndu9081631, thầy Sealand, cô thuyyeu99 đã hướng dẫn
 
Upvote 0
Mình tham gia 1 cách dùng Name bạn tham khảo nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Hình như có máy chữ nó không thay đổi phải không anh " Khoẻ Hoà khoá hoả hoã doạ. Hoa hoè lấp loé khoẻ khoẽ khoẹ. Tuỳ tuý tuỷ tuỵ
Phải xét thêm trường hợp: Sau ký tự cần tìm có phải là ký tự rổng hoặc trắng hay không
Phải IF thêm vài nhát nữa thì phải ---> Hic...
 
Upvote 0
Theo mình thì hàm của Thuyyeu99 nên trích 3 ký tự thay vì 2 ký tự sẽ hợp lý hơn. Lúc đó ta phân biệt được âm tiết cuối hay không.

P/s: Bài trước Thuyyeu99 có kêu nó không đổi là đúng vì Sealand gửi nhầm bài, Xin lỗi nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
chắc em if may cái nữa quá. Cám ơn anh
 
Lần chỉnh sửa cuối:
Upvote 0
Mình thử thay hàm của Thuyyeu99 từ test 2 ký tự sang 3 ký tự. Mình chưa kiểm tra kỹ, nói chung sơ bộ ý tưởng là vậy thôi
 

File đính kèm

Upvote 0
giờ em gõ vần úy toàn thành uý. vần òe toàn thành oè, vần òa thành vần oà. các bác xem giúp em cách chỉnh khi gõ thì dấu mặc định ở nguyên âm ở giữa chữ với. chứ Thúy toàn thành Thuý.
 
Upvote 0
Web KT

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

Back
Top Bottom