Tạo chức năng gợi ý tìm kiếm trên Word khi thực hiện "Insert Merge Field"

Liên hệ QC

MỹHạnhCB

Đi mây, về gió. !!!
Tham gia
25/3/22
Bài viết
123
Được thích
18
Chào các anh chị GPE ạ. Mạn phép ngoài lề Excel tí ạ
Hiện tại thì chức năng "Insert Merge Field" của Word không sử dụng gợi ý tìm kiếm mà phải tìm trong danh sách của ""Insert Merge Field" nên có hơi mất thời gian ạ
Mong các anh chị có thể chia sẽ giúp em đoạn mã trong Word để có thể thực hiện chức năng gợi ý như trên ạ.
- Tức em trỏ nháy chuột đến vị trí, sau đó gõ chữ (vd: gõ chữ S sẽ ra danh sách gợi ý như SoDienThoai, SoCMND, v..v.) để mình chọn.
Em gửi file Word mẫu em đã làm xong và file Excel để thực hiện ạ. Em xin cảm ơn nhiều.
 

File đính kèm

  • mailmerge.rar
    48.3 KB · Đọc: 2
Hiện tại thì chức năng "Insert Merge Field" của Word không sử dụng gợi ý tìm kiếm mà phải tìm trong danh sách của ""Insert Merge Field" nên có hơi mất thời gian ạ
Mong các anh chị có thể chia sẽ giúp em đoạn mã trong Word để có thể thực hiện chức năng gợi ý như trên ạ.
- Tức em trỏ nháy chuột đến vị trí, sau đó gõ chữ (vd: gõ chữ S sẽ ra danh sách gợi ý như SoDienThoai, SoCMND, v..v.) để mình chọn.
Em gửi file Word mẫu em đã làm xong và file Excel để thực hiện ạ. Em xin cảm ơn nhiều.
:D Nóng lòng dữ..
Mới mò mẫm được như hình dưới thôi. Chờ hoàn chỉnh chắc lâu. Các bạn nào đã làm rồi thì chia sẻ nhé.:)

Screen Shot 2022-06-23 at 16.35.29.png

Screen Shot 2022-06-23 at 16.39.50.png
 
Upvote 0
Upvote 0
Chào các anh chị GPE ạ. Mạn phép ngoài lề Excel tí ạ
Hiện tại thì chức năng "Insert Merge Field" của Word không sử dụng gợi ý tìm kiếm mà phải tìm trong danh sách của ""Insert Merge Field" nên có hơi mất thời gian ạ
Mong các anh chị có thể chia sẽ giúp em đoạn mã trong Word để có thể thực hiện chức năng gợi ý như trên ạ.
- Tức em trỏ nháy chuột đến vị trí, sau đó gõ chữ (vd: gõ chữ S sẽ ra danh sách gợi ý như SoDienThoai, SoCMND, v..v.) để mình chọn.
Em gửi file Word mẫu em đã làm xong và file Excel để thực hiện ạ. Em xin cảm ơn nhiều.
Dùng thử cái tiện ích này.
 

File đính kèm

  • Insert Merge Field.zip
    20.3 KB · Đọc: 5
Upvote 0
Chào các anh chị GPE ạ. Mạn phép ngoài lề Excel tí ạ
Hiện tại thì chức năng "Insert Merge Field" của Word không sử dụng gợi ý tìm kiếm mà phải tìm trong danh sách của ""Insert Merge Field" nên có hơi mất thời gian ạ
Mong các anh chị có thể chia sẽ giúp em đoạn mã trong Word để có thể thực hiện chức năng gợi ý như trên ạ.
- Tức em trỏ nháy chuột đến vị trí, sau đó gõ chữ (vd: gõ chữ S sẽ ra danh sách gợi ý như SoDienThoai, SoCMND, v..v.) để mình chọn.
Em gửi file Word mẫu em đã làm xong và file Excel để thực hiện ạ. Em xin cảm ơn nhiều.
Tức bạn muốn dùng chức năng Mail merge của Word nhưng do số trường rất rất nhiều nên tìm rất mất thời gian. Bạn muốn gõ vài ký tự đầu để rút ngắn danh sách các trường cần chọn? Tôi đếm có tất cả 145 trường. Nhưng nếu gõ "q" thì lại chỉ có 1 trường là QuanHuyen. Khỏi phải cuộn lên xuống để tìm QuanHuyen.

Như tôi mô tả ở trên là đúng ý bạn?
 
Upvote 0
Chào các anh chị GPE ạ. Mạn phép ngoài lề Excel tí ạ
Hiện tại thì chức năng "Insert Merge Field" của Word không sử dụng gợi ý tìm kiếm mà phải tìm trong danh sách của ""Insert Merge Field" nên có hơi mất thời gian ạ
Mong các anh chị có thể chia sẽ giúp em đoạn mã trong Word để có thể thực hiện chức năng gợi ý như trên ạ.
- Tức em trỏ nháy chuột đến vị trí, sau đó gõ chữ (vd: gõ chữ S sẽ ra danh sách gợi ý như SoDienThoai, SoCMND, v..v.) để mình chọn.

Bạn xem file đính kèm. Code chỉ đáp ứng cái yêu cầu cơ bản của bạn thôi nhé.
Link: https://www.mediafire.com/file/ph9q47tx0nt5wbr/myCustomMailMerge.zip/file

Thực hiện như video hướng dẫn.
Copy file [MyCustomMailMerge.dotm] vào đường dẫn: C:\Users\{Tên User}\AppData\Roaming\Microsoft\Word\STARTUP

Bài đã được tự động gộp:

Dùng thử cái tiện ích này.
Cảm ơn bạn @giaiphap đã hỗ trợ.
Chủ thớt đang dùng tính năng Mail Merge có sẳn trong Word chứ không phải file Excel của mình nên thay đổi cách code lại chút. :)
Mày mò VBA của Word chút xíu cũng giải quyết được yêu cầu trên nhưng chắc là code cũng còn lộn xộn lắm, đạt mục tiêu là OK rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Tức bạn muốn dùng chức năng Mail merge của Word nhưng do số trường rất rất nhiều nên tìm rất mất thời gian. Bạn muốn gõ vài ký tự đầu để rút ngắn danh sách các trường cần chọn? Tôi đếm có tất cả 145 trường. Nhưng nếu gõ "q" thì lại chỉ có 1 trường là QuanHuyen. Khỏi phải cuộn lên xuống để tìm QuanHuyen.

Như tôi mô tả ở trên là đúng ý bạn?
Dạ vâng đúng vậy ạ
Bài đã được tự động gộp:

Bạn xem file đính kèm. Code chỉ đáp ứng cái yêu cầu cơ bản của bạn thôi nhé.
Link: https://www.mediafire.com/file/ph9q47tx0nt5wbr/myCustomMailMerge.zip/file

Thực hiện như video hướng dẫn.

Bài đã được tự động gộp:


Cảm ơn bạn @giaiphap đã hỗ trợ.
Chủ thớt đang dùng tính năng Mail Merge có sẳn trong Word chứ không phải file Excel của mình nên thay đổi cách code lại chút. :)
Mày mò VBA của Word chút xíu cũng giải quyết được yêu cầu trên nhưng chắc là code cũng còn lộn xộn lắm, đạt mục tiêu là OK rồi.
Dạ vâng em xin cám ơn anh nhiều ạ. Em sẽ báo cáo kết quả sau ạ. }}}}}
 
Upvote 0
Bạn xem file đính kèm. Code chỉ đáp ứng cái yêu cầu cơ bản của bạn thôi nhé.
Link: https://www.mediafire.com/file/ph9q47tx0nt5wbr/myCustomMailMerge.zip/file

Thực hiện như video hướng dẫn.
Copy file [MyCustomMailMerge.dotm] vào đường dẫn: C:\Users\{Tên User}\AppData\Roaming\Microsoft\Word\STARTUP

Bài đã được tự động gộp:


Cảm ơn bạn @giaiphap đã hỗ trợ.
Chủ thớt đang dùng tính năng Mail Merge có sẳn trong Word chứ không phải file Excel của mình nên thay đổi cách code lại chút. :)
Mày mò VBA của Word chút xíu cũng giải quyết được yêu cầu trên nhưng chắc là code cũng còn lộn xộn lắm, đạt mục tiêu là OK rồi.
Dạ chào anh ạ. Em đã thực hiện được rồi ạ. Cảm ơn anh nhiều. Mạn phép hỏi anh thêm tí ạ. Vd mình bấm Ctrl +M để hiển thị bảng "Chèn Merge Fields" và thực hiện nhập 1 trường rồi, thì mỗi lần thay đổi phải tắt bảng "Chèn Merge Fields" đi rồi mình mới thao tác tiếp được ạ.
Anh có thể chỉnh sửa 1 chút để bảng "Chèn Merge Fields" vừa hiển thị mà mình có thể thao tác trên Word luôn được không? (chỉ tắt bảng "Chèn Merge Fields" khi mình muốn tắt). Cám ơn anh ạ
 
Upvote 0
Dạ chào anh ạ. Em đã thực hiện được rồi ạ. Cảm ơn anh nhiều. Mạn phép hỏi anh thêm tí ạ. Vd mình bấm Ctrl +M để hiển thị bảng "Chèn Merge Fields" và thực hiện nhập 1 trường rồi, thì mỗi lần thay đổi phải tắt bảng "Chèn Merge Fields" đi rồi mình mới thao tác tiếp được ạ.
Anh có thể chỉnh sửa 1 chút để bảng "Chèn Merge Fields" vừa hiển thị mà mình có thể thao tác trên Word luôn được không? (chỉ tắt bảng "Chèn Merge Fields" khi mình muốn tắt). Cám ơn anh ạ
Sửa chổ
Mã:
frmInsertMergeField.Show
thành
Mã:
frmInsertMergeField.Show False
 
Upvote 0
Đây cũng là một trải nghiệm người dùng thực tế khá hay, sau này các code liên quan đến Mail Merger nên chú ý thêm tính năng này.
Học hỏi từ bác @giaiphap mấy cái kỹ thuật dùng Ribbon, vụ này thì mình còn lơ mơ.
 
Lần chỉnh sửa cuối:
Upvote 0
Đây cũng là một trải nghiệm người dùng thực tế khá hay, sau này các code liên quan đến Mail Merger nên chú ý thêm tính năng này.
Vâng ạ. Anh nói anh mới mò sang Word mà hôm trước hôm sau đã xong rồi. Ngưỡng mộ anh quá.
Như em nội cái phần VBA vẫn còn đang mò mẫm o_O, chứ nói chi sang Word :p.
Cảm ơn anh và các anh chị trong diễn đàn GPE nhiều ạ
Bài đã được tự động gộp:

Đây cũng là một trải nghiệm người dùng thực tế khá hay, sau này các code liên quan đến Mail Merger nên chú ý thêm tính năng này.
Học hỏi từ bác @giaiphap mấy cái kỹ thuật dùng Ribbon, vụ này thì mình còn lơ mơ.
À tiện cho em hỏi thêm là nếu các trường đổ vào từ file excel thay đổi (tăng thêm hoặc giảm đi) thì vẫn thao tác tương tự luôn hả anh?.
 
Upvote 0
À tiện cho em hỏi thêm là nếu các trường đổ vào từ file excel thay đổi (tăng thêm hoặc giảm đi) thì vẫn thao tác tương tự luôn hả anh?.
Không ảnh hưởng gì vì dữ liệu cho comboBox lấy trực tiếp từ Data Source của Mail Merge, Data source thay đổi, Combobox thay đổi theo.
 
Upvote 0
Code bài #6 hình như không rút ngắn danh sách thì phải. Nếu thế thì hơi nhọc. Vd. tôi định chèn ThuaDat_STT nhưng tôi chỉ nhớ 2 ký tự đầu là "th". Vậy tôi gõ "th" thì có ThangChuyenHoSo. Tôi mở danh sách thì "quanh quanh" ThangChuyenHoSo lại không có ThuaDat_STT. Vẫn phải cuộn lên xuống để tìm ThuaDat_STT, vẫn mất công. Nếu gõ "th" mà rút gọn danh sách thì sẽ nhìn thấy ngay ThuaDat_STT "quanh quanh" ThangChuyenHoSo. Khỏi phải cuộn danh sách dài.
 
Upvote 0
Code bài #6 hình như không rút ngắn danh sách thì phải. Nếu thế thì hơi nhọc. Vd. tôi định chèn ThuaDat_STT nhưng tôi chỉ nhớ 2 ký tự đầu là "th". Vậy tôi gõ "th" thì có ThangChuyenHoSo. Tôi mở danh sách thì "quanh quanh" ThangChuyenHoSo lại không có ThuaDat_STT. Vẫn phải cuộn lên xuống để tìm ThuaDat_STT, vẫn mất công. Nếu gõ "th" mà rút gọn danh sách thì sẽ nhìn thấy ngay ThuaDat_STT "quanh quanh" ThangChuyenHoSo. Khỏi phải cuộn danh sách dài.
Đúng rồi anh. Chỉ sử dụng thuộc tính mặc định của comboBox thôi chứ chưa can thiệp lọc nguồn dữ liệu cho nó.
 
Upvote 0
Bạn có addin hotroMailMerge.dotm. Sau khi thêm thì ở thẻ Mailings sẽ có nút "Hỗ trợ MaiMerge". Nút ở 1 trong 2 trạng thái: bật hoặc tắt.

Thao tác: Trước tiên viết xong nội dung Word, chỉ còn bước chèn Insert Merge Field. Khi nào cần chèn thì bật hỗ trợ bằng cách nhấn nút - nút sẽ ở trạng thái nhấn chọn. Từ lúc này trở đi khi cần chèn ở đâu đó thì click ở đó, xuất hiện combobox với danh sách các trường. Có thể chọn ngay, hoặc có thể gõ vài ký tự để rút ngắn danh sách rồi mới chọn. Khi chọn một mục nào đó thì code tự chèn field, không phải nhấn thêm nút nào cả. Field sẽ được chèn và combobox dịch sang bên cạnh. Nếu bây giờ click chỗ khác thì combobox sẽ di chuyển tới chỗ click và trò chơi lại diễn ra như cũ. Khi cần nghỉ một chút, vd. để viết thêm hoặc chỉnh sửa nội dung, thì nhấn nút để nút về trạng thái không nhấn, không còn hỗ trợ nữa. Khi nào cần hỗ trợ thì lại bật nút. Khi tắt hỗ trợ thì code cũg delete combobox trên tài liệu hiện hành.

Nếu viết thì rất có thể tôi cũng dùng UserForm với ComboBox, nhưng do đã có ý tưởng đó thì tôi chơi combobox chèn ngay trên tài liệu. Nhưng do vậy cũng có bài học bổ ích về cách dùng class để xử lý sự kiện giống như SelectionChange trong Excel, và sự kiện Change của ComboBox.

Tôi viết chơi thôi. Được hay không cũng dừng.
 

File đính kèm

  • hotroMailMerge.rar
    22.5 KB · Đọc: 13
Lần chỉnh sửa cuối:
Upvote 0
Bạn có addin hotroMailMerge.dotm. Sau khi thêm thì ở thẻ Mailings sẽ có nút "Hỗ trợ MaiMerge". Nút ở 1 trong 2 trạng thái: bật hoặc tắt.

Thao tác: Trước tiên viết xong nội dung Word, chỉ còn bước chèn Insert Merge Field. Khi nào cần chèn thì bật hỗ trợ bằng cách nhấn nút - nút sẽ ở trạng thái nhấn chọn. Từ lúc này trở đi khi cần chèn ở đâu đó thì click ở đó, xuất hiện combobox với danh sách các trường. Có thể chọn ngay, hoặc có thể gõ vài ký tự để rút ngắn danh sách rồi mới chọn. Khi chọn một mục nào đó thì code tự chèn field, không phải nhấn thêm nút nào cả. Field sẽ được chèn và combobox dịch sang bên cạnh. Nếu bây giờ click chỗ khác thì combobox sẽ di chuyển tới chỗ click và trò chơi lại diễn ra như cũ. Khi cần nghỉ một chút, vd. để viết thêm hoặc chỉnh sửa nội dung, thì nhấn nút để nút về trạng thái không nhấn, không còn hỗ trợ nữa. Khi nào cần hỗ trợ thì lại bật nút. Khi tắt hỗ trợ thì code cũg delete combobox trên tài liệu hiện hành.

Nếu viết thì rất có thể tôi cũng dùng UserForm với ComboBox, nhưng do đã có ý tưởng đó thì tôi chơi combobox chèn ngay trên tài liệu. Nhưng do vậy cũng có bài học bổ ích về cách dùng class để xử lý sự kiện giống như SelectionChange trong Excel, và sự kiện Change của ComboBox.

Tôi viết chơi thôi. Được hay không cũng dừng.
Dạ vâng cám ơn anh ạ
 
Upvote 0
Web KT
Back
Top Bottom