Cập nhật một trường trong hộp văn bản (Microsoft Word)
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: