Nhờ giúp Tìm kiếm từ hoặc cụm từ (Ngoại trừ từ hoặc cụm từ đó viết hoa ở đầu mỗi chữ) trong Word

Liên hệ QC

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
905
Được thích
239
Giới tính
Nam
Xin chào các bạn GPE!
Tôi có File Word, vấn đề là làm thế nào để tìm kiếm từ hoặc cụm từ (Ngoại trừ từ hoặc cụm từ đó viết hoa ở đầu mỗi chữ).
Ví dụ: - Tìm từ "di đà" thì sẽ tìm từ tương ứng như là "di đà" hoặc "Di đà" hoặc "di Đà" (Ngoại trừ từ viết hoa đầu mỗi từ là "Di Đà")
- Tìm từ "phàm phu" thì sẽ tìm từ tương ứng như là "phàm Phu" hoặc "Phàm phu" hoặc "phàm phu" (Ngoại trừ từ viết hoa đầu mỗi từ là "Phàm Phu")
- Tìm từ "thường tịch quang" thì sẽ tìm từ tương ứng như là "thường tịch quang" hoặc "Thường tịch quang" hoặc "thường Tịch Quang" (Ngoại trừ từ viết hoa đầu mỗi từ là "Thường Tịch Quang")
1.png
 

File đính kèm

  • TinhDoDaiKinhGiaiDienNghia_041.docx
    88.5 KB · Đọc: 9
Xin chào các bạn GPE!
Tôi có File Word, vấn đề là làm thế nào để tìm kiếm từ hoặc cụm từ (Ngoại trừ từ hoặc cụm từ đó viết hoa ở đầu mỗi chữ).
Ví dụ: - Tìm từ "di đà" thì sẽ tìm từ tương ứng như là "di đà" hoặc "Di đà" hoặc "di Đà" (Ngoại trừ từ viết hoa đầu mỗi từ là "Di Đà")
- Tìm từ "phàm phu" thì sẽ tìm từ tương ứng như là "phàm Phu" hoặc "Phàm phu" hoặc "phàm phu" (Ngoại trừ từ viết hoa đầu mỗi từ là "Phàm Phu")
- Tìm từ "thường tịch quang" thì sẽ tìm từ tương ứng như là "thường tịch quang" hoặc "Thường tịch quang" hoặc "thường Tịch Quang" (Ngoại trừ từ viết hoa đầu mỗi từ là "Thường Tịch Quang")
View attachment 245981
Caí này khó thế ạ :))
Chi bằng tìm luôn di đà, di Đà, Di đà liệu có ra cả kết quả Di Đà không
Bài đã được tự động gộp:

Xin chào các bạn GPE!
Tôi có File Word, vấn đề là làm thế nào để tìm kiếm từ hoặc cụm từ (Ngoại trừ từ hoặc cụm từ đó viết hoa ở đầu mỗi chữ).
Ví dụ: - Tìm từ "di đà" thì sẽ tìm từ tương ứng như là "di đà" hoặc "Di đà" hoặc "di Đà" (Ngoại trừ từ viết hoa đầu mỗi từ là "Di Đà")
- Tìm từ "phàm phu" thì sẽ tìm từ tương ứng như là "phàm Phu" hoặc "Phàm phu" hoặc "phàm phu" (Ngoại trừ từ viết hoa đầu mỗi từ là "Phàm Phu")
- Tìm từ "thường tịch quang" thì sẽ tìm từ tương ứng như là "thường tịch quang" hoặc "Thường tịch quang" hoặc "thường Tịch Quang" (Ngoại trừ từ viết hoa đầu mỗi từ là "Thường Tịch Quang")
View attachment 245981
Bạn xem thêm cách tìm đặc biệt trong find more trong thẻ find. tích match case tìm được Di Đà riêng hoặc di đà
 
Lần chỉnh sửa cuối:
Caí này khó thế ạ :))
Chi bằng tìm luôn di đà, di Đà, Di đà liệu có ra cả kết quả Di Đà không
Người ta tìm lỗi chính tả mờ.
Làm thủ công thì không khó lắm. Chỉ là đã lên đây hỏi thì người ta đòi hỏi phải tự động "bấm một phát".
 
Mình không biết mục đích bạn tìm để làm gì? Nếu để thay thế thì mình thử thay thế từ "di đà" thành "Di Đà" thì tất cả "di đà" hoặc "Di đà" hoặc "di Đà" đều thay đổi thành "Di Đà".
 
Mình không biết mục đích bạn tìm để làm gì? Nếu để thay thế thì mình thử thay thế từ "di đà" thành "Di Đà" thì tất cả "di đà" hoặc "Di đà" hoặc "di Đà" đều thay đổi thành "Di Đà".
Mình muốn Tìm kiếm từ "di đà", "Di đà", "di Đà" để đổi nó thành "Di Đà" (Mình không muốn chọn "Di Đà" này vì bản thân nó đã là "Di Đà" rồi nên không phải tìm đến nó nữa).
Mình biết là sẽ có lệnh Replace All từ "di đà", "Di đà", "di Đà" => "Di Đà". Nhưng mình có rất nhiều từ cần thay thế (Khoảng 5.000 từ cần thay thế) mà có tới 600 File Word lận => Code chạy rất là lâu, nên tránh từ "Di Đà" vì nó đã có sẵn rồi (Có khoảng 5.000 từ như vậy),
 
Thì kết quả là "Ba 10 ba", "ba 10 Ba", "ba 10 ba" (Nhưng tuyệt đối không phải"Ba 10 Ba" => Từ này viết hoa cả câu)
Bạn thử thêm cụm từ "ba 10 ba" vào và tét tìm thử với ví dụ tìm cụm từ "ba 10 ba" xem đúng ý không?
Mã:
Option Explicit

Sub Chua_Test_Trong_Phong_Sieu_Thi_Nghiem()
    Dim Phong_Thi_Nghiem As Object
    Set Phong_Thi_Nghiem = ActiveDocument.Content
    Dim RengRengReng, sRumZum, tet_Tet_test, khongChoi, sTimKiem, DauTien
    tet_Tet_test = "|ba 10 ba|"
    sRumZum = "Phong thi nghiem"
    RengRengReng = sRumZum & " dang tét tét , ví du " & tet_Tet_test
    khongChoi = " khong chap nhan chu cai dau tien viet hoa"
    sTimKiem = InputBox(RengRengReng, sRumZum, tet_Tet_test)
    If sTimKiem = "" Then Exit Sub
    DauTien = Left(sTimKiem, 1)
    If DauTien <> UCase(DauTien) Then
        Phong_Thi_Nghiem.Find.Execute FindText:=sTimKiem, Forward:=True
        If Phong_Thi_Nghiem.Find.Found = True Then Phong_Thi_Nghiem.Select
    Else
        MsgBox sRumZum & khongChoi, vbCritical + vbOKOnly, sRumZum
    End If
End Sub
 
Lần chỉnh sửa cuối:
Mình muốn Tìm kiếm từ "di đà", "Di đà", "di Đà" để đổi nó thành "Di Đà" (Mình không muốn chọn "Di Đà" này vì bản thân nó đã là "Di Đà" rồi nên không phải tìm đến nó nữa).
Mình biết là sẽ có lệnh Replace All từ "di đà", "Di đà", "di Đà" => "Di Đà". Nhưng mình có rất nhiều từ cần thay thế (Khoảng 5.000 từ cần thay thế) mà có tới 600 File Word lận => Code chạy rất là lâu, nên tránh từ "Di Đà" vì nó đã có sẵn rồi (Có khoảng 5.000 từ như vậy),
Vậy thì sẽ có 2 vòng lặp, 1 vòng lặp mở 600 file word, 1 vòng lặp replace 5000 từ đó vào file word. Vậy thì bạn cần tạo 2 bảng, 1 bảng chứa tên file word, 1 bảng chứa 5000 từ đó với 1 cột là từ viết thường, 1 cột là từ viết hoa. Sau đó bật lên đi ngủ, chắc sáng cũng xong, nếu mình mô tả giống như bạn muốn thì bạn gửi file mẫu lên đi, cuối tuần mình sẽ viết thử coi chạy được không.
 
Đầu tiên chủ topic nên lập 1 từ điển các từ , cụm từ đúng đã, thì sau đó mới suy nghĩ tiếp kết quả
 
Vậy thì sẽ có 2 vòng lặp, 1 vòng lặp mở 600 file word, 1 vòng lặp replace 5000 từ đó vào file word. Vậy thì bạn cần tạo 2 bảng, 1 bảng chứa tên file word, 1 bảng chứa 5000 từ đó với 1 cột là từ viết thường, 1 cột là từ viết hoa. Sau đó bật lên đi ngủ, chắc sáng cũng xong, nếu mình mô tả giống như bạn muốn thì bạn gửi file mẫu lên đi, cuối tuần mình sẽ viết thử coi chạy được không.
Sơ lược như ảnh dưới đây:
Anh.png
Bài đã được tự động gộp:

Đầu tiên chủ topic nên lập 1 từ điển các từ , cụm từ đúng đã, thì sau đó mới suy nghĩ tiếp kết quả
Mình cũng đã làm như bạn nói. Quan trọng là tốc độ chạy Code.
 

File đính kèm

  • Sua tu.doc
    28.5 KB · Đọc: 3
Mình đã Test và kết luận có 2 vấn đề:
- Vấn đề 1: Nếu để nguyên 2 cái | | thì nó không tìm được "ba 10 ba".
- Vấn đề 2: Nếu mình bỏ 2 cái | | đi thì nó chọn được "ba 10 ba", nhưng nó vẫn chọn "Ba 10 Ba" (Viết hoa cả cụm từ) (Cái này mới là quan trọng nhất)
Bài đã được tự động gộp:

Tôi thì nghĩ độ chính xác và phù hợp quy mô thì hơn
Đúng như bạn nói. Nhưng không phải chạy Code 1 lần là xong. Ngoài khoảng 5.000 từ đó thì lâu lâu lại phát hiện thêm từ mới cần chỉnh sửa. Cho nên tôi mới cần tốc độ, càng nhanh càng tốt.
 
Xin chào các bạn GPE!
Tôi có File Word, vấn đề là làm thế nào để tìm kiếm từ hoặc cụm từ (Ngoại trừ từ hoặc cụm từ đó viết hoa ở đầu mỗi chữ).
Ví dụ: - Tìm từ "di đà" thì sẽ tìm từ tương ứng như là "di đà" hoặc "Di đà" hoặc "di Đà" (Ngoại trừ từ viết hoa đầu mỗi từ là "Di Đà")
- Tìm từ "phàm phu" thì sẽ tìm từ tương ứng như là "phàm Phu" hoặc "Phàm phu" hoặc "phàm phu" (Ngoại trừ từ viết hoa đầu mỗi từ là "Phàm Phu")
- Tìm từ "thường tịch quang" thì sẽ tìm từ tương ứng như là "thường tịch quang" hoặc "Thường tịch quang" hoặc "thường Tịch Quang" (Ngoại trừ từ viết hoa đầu mỗi từ là "Thường Tịch Quang")

Bạn download cái Add-in này dùng thử xem. Tạo cái danh sách từ cần thay thế rồi bấm "Execute".

Link: https://gregmaxey.com/word_tip_pages/vba_find_and_replace.html
 
Bạn download cái Add-in này dùng thử xem. Tạo cái danh sách từ cần thay thế rồi bấm "Execute".

Link: https://gregmaxey.com/word_tip_pages/vba_find_and_replace.html
Anh chưa rõ chủ thớt rồi. Chủ thớt cần code chuẩn 100% (thử nghiệm vài tháng rồi mới kết luận) theo đúng yêu cầu đề ra, không có thay đổi phương án.

Mục đích là thay thế chuỗi

1600917509521.png
nhưng mục đích chỉ là thứ yếu, cái quan trọng là phương án đã nghĩ ra là mọi người chỉ có nhiệm vụ làm theo, miễn bàn cách khác.

1600917572294.png

Vậy bài 14 mới chạy rơi dép.

Giờ muốn nhanh chắc chỉ đọc file *.xml mà xử.
 
Mình đã Test và kết luận có 2 vấn đề:
- Vấn đề 1: Nếu để nguyên 2 cái | | thì nó không tìm được "ba 10 ba".
- Vấn đề 2: Nếu mình bỏ 2 cái | | đi thì nó chọn được "ba 10 ba", nhưng nó vẫn chọn "Ba 10 Ba" (Viết hoa cả cụm từ) (Cái này mới là quan trọng nhất)
Sửa cốt:
Mã:
Option Explicit
Sub Chua_Test_Trong_Phong_Sieu_Thi_Nghiem()
    Dim Phong_Thi_Nghiem As Object
    Set Phong_Thi_Nghiem = ActiveDocument.Content
    Dim RengRengReng, sRumZum, tet_Tet_test, khongChoi, sTimKiem, DauTien
    tet_Tet_test = "ba 10 ba"
    sRumZum = "Phong thi nghiem"
    RengRengReng = sRumZum & " dang tét tét , ví du " & tet_Tet_test
    khongChoi = " khong chap nhan chu cai dau tien viet hoa"
    sTimKiem = InputBox(RengRengReng, sRumZum, tet_Tet_test)
    If sTimKiem = "" Then Exit Sub
    DauTien = Left(sTimKiem, 1)
    If DauTien <> UCase(DauTien) Then
        Phong_Thi_Nghiem.Find.Execute FindText:=sTimKiem, MatchCase:=True, Forward:=True
        If Phong_Thi_Nghiem.Find.Found = True Then Phong_Thi_Nghiem.Select
    Else
        MsgBox sRumZum & khongChoi, vbCritical + vbOKOnly, sRumZum
    End If
End Sub
 
Anh chưa rõ chủ thớt rồi. Chủ thớt cần code chuẩn 100% (thử nghiệm vài tháng rồi mới kết luận) theo đúng yêu cầu đề ra, không có thay đổi phương án.
...
Chắc không sao đâu. Hình như nít này có lời hứa rằng mọi "sai sót" sẽ được phản ứng bằng lời niệm Phật.
Tuy nhiên, cũng cần cẩn thận mấy cái "nít phụ" chúng nhào vào chửi (hình như cũng chính nít này hứa vậy).
 
Tìm luôn "Ba 10 Ba" và thay thế bằng chính nó thì có sao? Chính vì vậy mà tôi chả muốn nghĩ về cách giải nào nữa
 
Web KT
Back
Top Bottom