James đánh dấu các mục trong tài liệu của mình để tiện cho việc tham khảo chéo. Đôi khi, trong quá trình chỉnh sửa, anh ta có thể cần xóa một số thứ mà anh ta đã đánh dấu trước đó. James tự hỏi liệu có cách nào để tìm xem có bất kỳ tham chiếu chéo nào đến văn bản (và dấu trang) mà anh ấy đang nghĩ đến việc xóa hay không.

Nếu bạn chỉ cần thực hiện tác vụ này một lần, bạn có thể thực hiện thủ công. Tuy nhiên, cách bạn tiếp cận nó sẽ phụ thuộc vào cách bạn tạo tham chiếu chéo. Bạn thấy đấy, khi bạn chèn một tham chiếu chéo, Word sẽ hiển thị hộp thoại Tham chiếu chéo. (Xem Hình 1.)

image

Hình 1. Hộp thoại Tham chiếu chéo.

Trong hộp thoại, sử dụng danh sách thả xuống Loại tham chiếu, bạn có thể chọn loại tham chiếu chéo mà bạn muốn tạo. Mỗi loại tham chiếu sử dụng một biến thể khác nhau của trường REF để chèn tham chiếu chéo thực tế. Ví dụ: nếu bạn chèn một tham chiếu chéo đến một dấu trang, thì trường được chèn sẽ trông giống như sau:

{ REF MyBookmark \h }

Phần “MyBookmark” là tên dấu trang mà bạn đang tham chiếu chéo.

Tham số (trong trường hợp này là \ h) được điều khiển bởi danh sách thả xuống Chèn Tham chiếu Đến trong hộp thoại Tham chiếu chéo. Thay vào đó, nếu bạn chèn một tham chiếu chéo đến một tiêu đề trong tài liệu, nó sẽ trông giống như sau:

{ REF _Ref47603047 \h }

Phần “_Ref47603047” của mã trường này là dấu trang do hệ thống tạo bị ẩn. Nó đề cập đến tiêu đề bạn đã chọn để tham khảo chéo. Bạn có thể thấy những dấu trang ẩn này nếu bạn hiển thị hộp thoại Dấu trang và nhấp vào hộp kiểm Dấu trang ẩn ở cuối hộp thoại.

Trong mẹo này, vì James đặc biệt yêu cầu tìm các tham chiếu chéo đến văn bản được đánh dấu trang, tôi sẽ giả định rằng khi anh ấy tạo tham chiếu chéo, anh ấy đã làm như vậy bằng cách chọn Đánh dấu trong danh sách thả xuống Chèn Tham chiếu Đến hộp thoại -reference. Điều này thực sự cũng làm cho nó dễ dàng hơn một chút, để tìm xem dấu trang của bạn có được tham chiếu chéo ở bất kỳ đâu.

Bắt đầu bằng cách tìm ra tên của dấu trang có trong văn bản mà bạn đang xem xét xóa. Trong trường hợp này, tôi sẽ giả sử nó là một cái tên chẳng hạn như MyBookmark. Tất cả những gì bạn cần làm là nhấn tổ hợp phím Alt + F9, thao tác này khiến Word hiển thị mã trường trong tài liệu của bạn thay vì kết quả của mã trường. Tại thời điểm này, bạn chỉ cần tìm kiếm tên dấu trang (trong trường hợp này là MyBookmark) và bạn sẽ có thể tìm thấy bất kỳ trường REF nào (hãy nhớ, các trường REF được sử dụng để tham khảo chéo)

có chứa tên dấu trang. Nếu bạn không tìm thấy tên dấu trang, thì không có tham chiếu chéo nào đến dấu trang đó và bạn có thể xóa an toàn văn bản và dấu trang trong đó. Khi bạn đã hoàn tất, hãy nhấn lại Alt + F9 để tắt hiển thị mã trường.

Nếu bạn cần tìm hiểu xem một dấu trang được tham chiếu nhiều lần hoặc nếu bạn muốn thực hiện tìm kiếm đầy đủ hơn những gì Tìm và Thay thế cung cấp, thì bạn nên cân nhắc sử dụng macro. Bộ bốn macro sau đây có thể hữu ích trong tình huống này.

Sub IsBookmarkReferenced()

Dim aStory As Range     Dim aShape As Shape     Dim aField As Field     Dim bkName As String     Dim bReffed As Boolean

bReffed = False     If Selection.Bookmarks.Count > 0 Then         bkName = Selection.Bookmarks(1).Name         For Each aStory In ActiveDocument.StoryRanges             If TestForBookmark(aStory, bkName) Then                 bReffed = True             Else                 Select Case aStory.StoryType                     Case wdMainTextStory, wdEvenPagesHeaderStory, _                       wdPrimaryHeaderStory, wdEvenPagesFooterStory, _                       wdPrimaryFooterStory, wdFirstPageHeaderStory, _                       wdFirstPageFooterStory                         For Each aShape In aStory.ShapeRange                             If aShape.TextFrame.HasText Then                                 If TestForBookmark(aShape.TextFrame.TextRange, bkName) Then bReffed = True                             End If                         Next                     End Select                 Next aStory             Endif         Next aStory         sTemp = "Bookmark " & bkName & " is "

If Not bReffed Then sTemp = sTemp & "NOT "

sTemp = sTemp & "referenced in the document."

Else         sTemp = "There is no bookmark in the selected text."

End If     MsgBox sTemp End Sub
Function TestForBookmark(tRange As Range, bkName As String) As Boolean     Dim aField As Field
Function BookRef(str As String, typeCode As Long) As String     Dim s As String     Dim i As Long

s = Trim(str)

If s <> "" Then         i = InStr(s, " ")

If i > 0 Then s = Trim(Mid(s, i))

i = InStr(s, """")

If i > 1 Then s = Left(s, i - 1)

Else                 s = ""

End If         Else             i = InStr(s, " ")

If i > 0 Then s = Trim(Left(s, i))

End If     End If     BookRef = s End Function
Function TOCRef(str As String) As String     Dim s As String     Dim i As Long

s = Trim(str)

i = InStr(s, "\b")

If i = 0 Then         TOCRef = ""

Exit Function     End If     s = Trim(Mid(s, i + 2))

i = InStr(s, " ")

If i > 0 Then s = Left(s, i - 1)

TOCRef = s End Function

Để sử dụng macro, tất cả những gì bạn cần làm là chọn văn bản bạn đang xem xét xóa và sau đó chạy macro IsBookmarkReferenced.

Đổi lại, nó sử dụng ba chức năng khác để tìm xem có bất kỳ dấu trang nào trong văn bản đã chọn được tham chiếu ở nơi khác hay không. Macro sẽ kiểm tra các trường không chỉ trong chính tài liệu chính mà còn trong đầu trang, chân trang và hộp văn bản.

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 (7619) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365.