Jay gặp một tình huống trong đó anh ta có một trường thuộc tính tài liệu được chèn vào hộp văn bản trong tài liệu. Sử dụng Ctrl + A và sau đó nhấn F9 sẽ cập nhật tất cả các trường tài liệu thuộc tính trong tài liệu, nhưng một trường này không được cập nhật bởi hành động của Jay. Quá trình cập nhật trường trong đầu trang và chân trang cũng không cập nhật trường bên trong hộp văn bản.

Jay đang tự hỏi liệu có cách nào anh ấy có thể cập nhật trường theo cách thủ công bằng bàn phím hoặc có cách nào để cập nhật trường bằng macro hay không.

Các trường có thể được đặt trong rất nhiều phần tử tài liệu. Ví dụ, chúng có thể nằm trong văn bản tài liệu chính, trong hộp văn bản, trong đầu trang hoặc chân trang, trong Kiểu tự động hoặc trong bảng đặc biệt. Trong khi nhấn Ctrl + A sẽ chọn tất cả tài liệu của bạn, nhấn F9 sẽ không cập nhật các trường trong tất cả các phần tử tài liệu. Thay vào đó, bạn cần sử dụng macro để cập nhật.

Nếu bạn chỉ muốn macro cập nhật các trường trong bất kỳ hộp văn bản nào của mình, điều này đủ dễ dàng để thực hiện. Các bước macro sau đây qua từng hình dạng trong tài liệu của bạn (điều này bao gồm hộp văn bản và Hình dạng tự động)

và, nếu hình dạng chứa văn bản, hãy cập nhật bất kỳ trường nào trong hình dạng đó.

Sub UpdateTBFields()

Dim shp As Shape

For Each shp In ActiveDocument.Shapes         With shp.TextFrame             If .HasText Then                 .TextRange.Fields.Update             End If         End With     Next End Sub

Macro này có thể được gán cho một phím tắt để bạn có thể dễ dàng cập nhật các trường chỉ bằng cách chạm vào phím tắt. Tất nhiên, bạn có thể muốn phát triển một macro bao trùm hơn để cập nhật tất cả các trường, cho dù chúng ở đâu. (Hãy nhớ — các trường có thể nằm trong bất kỳ số lượng phần tử tài liệu nào.) Trong trường hợp đó, hãy xem xét phiên bản macro sau đây bao quát hơn.

Public Sub UpdateAllFields()

Dim doc As Document     Dim wnd As Window     Dim lngMain As Long     Dim lngSplit As Long     Dim lngActPane As Long     Dim rngStory As Range     Dim TOC As TableOfContents     Dim TOA As TableOfAuthorities     Dim TOF As TableOfFigures     Dim shp As Shape

' Set Objects     Set doc = ActiveDocument     Set wnd = ActiveDocument.ActiveWindow

' get Active Pane Number     lngActPane = wnd.ActivePane.Index

' Hold View Type of Main pane     lngMain = wnd.Panes(1).View.Type

' Hold SplitSpecial     lngSplit = wnd.View.SplitSpecial

' Get Rid of any split     wnd.View.SplitSpecial = wdPaneNone

' Set View to Normal     wnd.View.Type = wdNormalView

' Loop through each story in doc to update     For Each rngStory In doc.StoryRanges         If rngStory.StoryType = wdCommentsStory Then             Application.DisplayAlerts = wdAlertsNone             ' Update fields             rngStory.Fields.Update             Application.DisplayAlerts = wdAlertsAll         Else             ' Update fields             rngStory.Fields.Update         End If     Next

'Loop through text boxes and update     For Each shp In doc.Shapes         With shp.TextFrame             If .HasText Then                 shp.TextFrame.TextRange.Fields.Update             End If         End With     Next

' Loop through TOC and update     For Each TOC In doc.TablesOfContents         TOC.Update     Next

' Loop through TOA and update     For Each TOA In doc.TablesOfAuthorities         TOA.Update     Next

' Loop through TOF and update     For Each TOF In doc.TablesOfFigures         TOF.Update     Next

' Return Split to original state     wnd.View.SplitSpecial = lngSplit

' Return main pane to original state     wnd.Panes(1).View.Type = lngMain

' Active proper pane     wnd.Panes(lngActPane).Activate

' Close and release all pointers     Set wnd = Nothing     Set doc = Nothing 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 (12344) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: