Veld bijwerken in een tekstvak

Jay heeft een situatie waarin hij een document eigenschap veld ingevoegd in een tekstvak in een document. Met Ctrl + A en dan moet op F9 te drukken al het onroerend goed document velden in het document bij te werken, maar dit een veld is niet bijgewerkt door actie Jay? S. Het proces om velden ook bijwerken in kop- en voetteksten niet het veld te werken in het tekstvak. Jay vraagt ​​zich af of er een manier waarop hij kan handmatig het veld met het toetsenbord te werken of als er een manier om het bij te werken met behulp van een macro.

Velden kunnen in veel document elementen worden geplaatst. Ze kunnen worden, bijvoorbeeld in de belangrijkste document tekst in tekstvakken, in kop- en voetteksten, in AutoVormen, of in speciale tafels. Terwijl u op Ctrl + A zal al uw document te selecteren, drukt u op F9 won? T werk de velden in alle van het document elementen. In plaats daarvan moet u een macro gebruiken om de bijwerking te doen.

Als je gewoon wilt een macro om de velden in een van uw tekstvakken te werken, dit is makkelijk genoeg te doen. De volgende macro stappen door elk van de vormen in document (dit omvat tekstvakken en Auto vormen) en, indien de vorm tekst bevat, actualiseren velden bevat.

Sub UpdateTBFields ()
Dim shp Zoals Shape

Voor Elke shp In ActiveDocument.Shapes
Met shp.TextFrame
Als .HasText Dan
.TextRange.Fields.Update
End If
End With
Volgende
End Sub

Deze macro kan worden toegewezen aan een sneltoets, zodat je kon gemakkelijk de velden met een druk op de snelkoppeling te werken. Natuurlijk, wilt u misschien een meer omvattende macro dat alle velden bijwerkt, waar zij zich ook ontwikkelen. (Vergeet niet? Velden kan zijn in een aantal documenten elementen.) In dat geval rekening met de volgende meer allesomvattende versie van de macro.

Public Sub UpdateAllFields ()
Dim doc Als Document
Dim wnd Zoals Venster
Dim lngMain As Long
Dim lngSplit As Long
Dim lngActPane As Long
Dim rngStory als Waaier
Dim TOC Zoals tableofcontents
Dim TOA Zoals TableOfAuthorities
Dim TOF Zoals TableOfFigures
Dim shp Zoals Shape

'Set Objecten
Set doc = ActiveDocument
Stel wnd = ActiveDocument.ActiveWindow

'Get Active Pane Aantal
lngActPane = wnd.ActivePane.Index

'Hold Bekijk Type Hoofd ruit
lngMain = wnd.Panes (1) .View.Type

'Hold SplitSpecial
lngSplit = wnd.View.SplitSpecial

'Get Rid van een split
wnd.View.SplitSpecial = wdPaneNone

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

'Loop door elk verhaal in doc bij te werken
Voor Elke rngStory In doc.StoryRanges
Als rngStory.StoryType = wdCommentsStory Dan
Application.DisplayAlerts = wdAlertsNone
'Bijwerken velden
rngStory.Fields.Update
Application.DisplayAlerts = wdAlertsAll
Anders
'Bijwerken velden
rngStory.Fields.Update
End If
Volgende

'Loop door tekstvakken en bijwerken
Voor Elke shp In doc.Shapes
Met shp.TextFrame
Als .HasText Dan
shp.TextFrame.TextRange.Fields.Update
End If
End With
Volgende

'Loop door TOC en bijwerken
Voor elke TOC In doc.TablesOfContents
TOC.Update
Volgende

'Loop door TOA en bijwerken
Voor Elke TOA In doc.TablesOfAuthorities
TOA.Update
Volgende

'Loop via TOF en bijwerken
Voor Elke TOF In doc.TablesOfFigures
TOF.Update
Volgende

'Return Split naar oorspronkelijke staat
wnd.View.SplitSpecial = lngSplit

'Terug hoofdluik naar oorspronkelijke staat
wnd.Panes (1) .View.Type = lngMain

'Actieve juiste ruit
wnd.Panes (lngActPane) .Activate

'Sluit en laat alle pointers
Stel wnd = Nothing
Stel doc = Nothing
End Sub

WordTips is uw bron voor kosteneffectieve Microsoft Word training. (Microsoft Word is de meest populaire tekstverwerker in de wereld.) Deze tip (3879) is van toepassing op Microsoft Word 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van het Woord (Word 2007 en later) hier: een gebied bijwerken in een tekstvak.