El otro día me comentó un cliente que estos campos no se actualizaban automáticamente y muchos usuarios guardaban el documento sin actualizar los campos, lo cual era un problema para ellos. La solución fue práctiacamente instantánea; una macro que actualice dichos campos al abrir el documento de forma automática:
Dim rango As Range
Dim campo As Field
For Each rango In ActiveDocument.StoryRanges
For Each campo In rango.Fields
campo.Update
Next campo
Next rango
Espero que os resulte útil.
Un saludo.
4 comentarios:
Me alegro!
Un saludo.
Hola amigo es presisamente lo que nado buscando pero de programacion nada, he habierto el vb de word y pegado el codigo pero el campo no se actualiza podria hecharme una mano porfavor
Esta muy bueno, pero, que pasa si los campos estan como pie de pagina o encabazo, la macro no funciona, Saludos!
Esta macro la realicé a partir de este blog.
Incluye actualización de Tablas de Contenido (TOC) y tabla de Figuras. Incluye actualización de Encabezado y pie de página.
Estoy seguro que se puede mejorar pero se me acabó el tiempo para depurarla.
Sub Felder_aktualisieren()
'
Selection.WholeStory
Selection.Fields.Update
Selection.HomeKey Unit:=wdStory
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
Dim rango As Range
Dim campo As Field
Dim Sect As Section
If ActiveDocument.TablesOfFigures.Count >= 1 Then
ActiveDocument.TablesOfFigures(1).Update
End If
If ActiveDocument.TablesOfContents.Count >= 1 Then
ActiveDocument.TablesOfContents(1).Update
End If
Dim Foot As HeaderFooter
Dim Head As HeaderFooter
For Each Sect In ActiveDocument.Sections
For Each Foot In Sect.Footers
For Each campo In Foot.Range.Fields
campo.Update
Next campo
Next Foot
For Each Head In Sect.Headers
For Each campo In Head.Range.Fields
campo.Update
Next campo
Next Head
Next Sect
End Sub
Publicar un comentario