Nathan thường xuyên gặp phải vấn đề với các cá nhân viết hoa chức danh công việc (ví dụ: “Người quản lý tài chính sẽ cung cấp …​”) trong tài liệu.

Anh ta muốn một macro kiểm tra mọi việc sử dụng chức danh quản lý và viết thường chức danh đó, trừ khi có lý do hợp lệ để viết tắt chữ đầu tiên khi tiêu đề bắt đầu một câu. Anh ta tự hỏi liệu có thể nào, mà không cần nhập tất cả ba mươi chức danh quản lý, thiết lập một thẻ đại diện để khớp với bất kỳ cụm từ hai từ nào trong đó từ thứ hai là “người quản lý” hoặc “người quản lý”.

Có thể thực hiện tìm kiếm theo thẻ đại diện để tìm các loại phiên bản bạn đang tìm kiếm. Tất cả những gì bạn cần làm là tìm kiếm nâng cao, đảm bảo hộp kiểm Sử dụng ký tự đại diện được chọn, sau đó sử dụng mẫu này trong trường Tìm gì:

<[A-Za-z][a-z]{1,}>^32[Mm]anager*>

Mẫu sẽ tìm thấy hai từ trong đó từ thứ hai là quản lý hoặc các nhà quản lý. Nó sẽ tìm các từ nếu cả hai hoặc một trong hai từ được viết hoa hoặc cả hai từ đều được viết thường.

Vấn đề là không thể thay đổi một từ đã được tìm thấy bằng cách sử dụng ký tự đại diện thành tất cả các chữ thường. Điều này có nghĩa là bạn sẽ cần kiểm tra thủ công những gì được tìm thấy và sau đó thực hiện bất kỳ thay đổi cần thiết nào bằng tay. Nếu bạn chỉ phải thực hiện việc này một lần, điều đó không quá khó khăn vì hộp thoại Tìm và Thay thế không phải là phương thức. (Điều đó có nghĩa là bạn có thể để hộp thoại mở trên màn hình khi bạn thực hiện chỉnh sửa trong tài liệu, sau đó nhấp vào Tìm Tiếp theo trong hộp thoại để tìm lần xuất hiện phù hợp tiếp theo.)

Nếu bạn cần thực hiện những thay đổi như vậy khá thường xuyên, thì giải pháp thay thế duy nhất là tạo macro sẽ thực hiện các thay đổi cho bạn. Macro sau đây tìm kiếm mẫu tương tự được lưu ý ở trên và sau đó thay đổi chính xác cách viết hoa của chức danh công việc. Macro tìm chức danh công việc bao gồm hai từ với từ thứ hai là “người quản lý”, “Người quản lý”, “người quản lý” hoặc “Người quản lý”. Sau đó, nó sẽ xóa mọi cách viết hoa khỏi các từ trừ khi tiêu đề bắt đầu một câu, trong trường hợp đó, nó chỉ xóa viết hoa khỏi từ thứ hai.

Sub FixManagerCapitalisation()

Dim aRange As Range     Dim bRange As Range

With Selection.Find         .ClearFormatting         .Text = "<[A-Za-z][a-z]{1,}>^32[Mm]anager*>"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindAsk         .MatchCase = False         .MatchWildcards = True         Do While .Execute             Set aRange = Selection.Range             Set bRange = Selection.Range             bRange.MoveEnd unit:=wdSentence             If bRange.Text <> Selection.Sentences(1).Text Then                 aRange = LCase(aRange.Words(1).Text) & Trim(aRange.Words(2))

End If             aRange = aRange.Words(1) & Trim(LCase(aRange.Words(2).Text))

aRange.Start = aRange.End             aRange.Select             .ClearFormatting         Loop     End With End Sub

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.

(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (13080) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365.