Agnes hỏi liệu có cách nào để tự động gạch dưới tất cả các trường hợp của từ “Section” và bất kỳ thông tin phụ trợ nào theo sau từ này không.

Ví dụ: một tài liệu có thể chứa văn bản như “Phần 2.3 (b) (i)”

hoặc “Phần 5.21” hoặc “Phần 12.12 (a)” và Agnes muốn tìm văn bản này và gạch chân tất cả.

Có một số điều để thử. Trước hết, bạn có thể thực hiện Tìm và Thay thế tiêu chuẩn, nhưng chỉ khi bằng cách nào đó bạn có thể làm cho văn bản trở nên “chuẩn” hơn một chút. Nếu không có một số loại mẫu nào đó có thể phù hợp, hầu như không thể thực hiện Tìm và Thay thế để tìm tất cả các trường hợp có thể có của văn bản.

Tuy nhiên, một khả năng là ghi lại một macro xem xét tất cả các khả năng. Nó không nhất thiết phải là một macro đơn giản, vì nó sẽ cần phải tìm từ “Phần” ngay sau đó là dấu cách, một chữ số, một dấu chấm, nhiều chữ số hơn và sau đó (tùy chọn) mọi thứ lên đến và bao gồm cả dấu ngoặc đóng. Đó là khá nhiều phân tích văn bản cần phải xảy ra.

Nơi bắt đầu là tìm kiếm theo ký tự đại diện. Cụm từ tìm kiếm sau sẽ tìm thấy từ Section theo sau là “số chấm số”

mẫu:

Section [0-9]{1,}.[0-9]{1,}

Nếu mẫu tìm kiếm này được sử dụng trong macro, thì sau mỗi lần tìm thành công văn bản, macro có thể bắt đầu mở rộng những gì đã tìm thấy và xem nó có chứa các ký tự trong ngoặc đơn hay không. Macro sau sẽ thực hiện nhiệm vụ này.

Sub ULWords()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "Section [0-9]{1,}.[0-9]{1,}"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         Selection.MoveRight Unit:=wdCharacter, _           Count:=1, Extend:=wdExtend             While Right(Selection.Text, 1) = "("

Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend                 While Right(Selection.Text, 1) <> ")"

Selection.MoveRight Unit:=wdCharacter, _                       Count:=1, Extend:=wdExtend                 Wend                 Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend             Wend         Selection.MoveRight Unit:=wdCharacter, _           Count:=-1, Extend:=wdExtend         Selection.Font.Underline = True         Selection.MoveRight Unit:=wdCharacter, Count:=1         Selection.Find.Execute     Wend End Sub

Lưu ý rằng macro sử dụng tìm kiếm ký tự đại diện ở đầu để tìm tất cả các trường hợp của từ “Section” theo sau là “số chấm số”

mẫu. Nếu một thể hiện được tìm thấy, thì nó được mở rộng bởi một ký tự.

Nếu ký tự đó là một dấu ngoặc mở thì vùng chọn sẽ được mở rộng cho đến khi tìm thấy dấu ngoặc đóng. Quá trình tìm dấu ngoặc mở / đóng này được tiếp tục và khi không còn tập hợp nào được định vị, toàn bộ lựa chọn mở rộng sẽ được gạch chân. Quá trình này tiếp tục cho đến khi toàn bộ tài liệu đã được tìm kiếm.

_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 (497) áp dụng cho Microsoft Word 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Word (Word 2007 và sau này) tại đây: