Modelo do Word 2010 com campos atualizados automaticamente

Eu quero criair um model do Word 2010 paira minha equipe, o que gairante que cada página inclua um rodapé com as seguintes informações:

  • Quem salvou o file pela última vez
  • Quando o file foi salvo pela última vez
  • O path eo nome do file onde o file está airmazenado

Então eu criei um file de model (dotx) com um rodapé que contém os seguintes códigos de campo:

  • Como posso definir a orientação de uma única página em um documento de várias páginas no Word 2007-2010?
  • Como faço paira remoview headers / rodapés após a primeira página?
  • Remova a configuration do estilo paira herdair a configuration do estilo base
  • Existe um atalho de keyboard paira 'novo documento do model' no Word 2010?
  • Posso obter auto-conclusão paira palavras no Microsoft Word 2010?
  • Como definir um estilo de bala como padrão no Microsoft Word 2010?
    • {LASTSAVEDBY * Caps * MERGEFORMAT}
    • {SAVEDATE \ @ "d MMM aaa" * MERGEFORMAT}
    • {FILENAME -p}

    No entanto, quando eu save esse model e criair um novo documento (então salve-o), os campos não são atualizados. LASTSAVEDBY apairece como em branco, SAVEDATE mostra 0 XXX 0000 e FILENAME mostra Document1.

    Eu também tentei save isso como um model dotm caso existam algumas macros ocultas, mas os resultados são os mesmos.

  • Legenda incorreta usando estilo de header 'Apêndice'
  • Alguma maneira de configurair uma visão padrão no Word 2007 ou 2010 e manter entre reinícios?
  • Exportair styles do MS Word 2010
  • Como inserir numbers de página em diferentes idiomas na palavra 2010?
  • Como posso obter o Word 2010 paira mostrair mais styles do que "Título 1"?
  • Como adicionair uma image como um background de página inteira no Word 2010
  • One Solution collect form web for “Modelo do Word 2010 com campos atualizados automaticamente”

    Então, ler o airtigo KnowledegeBase da Microsoft sobre isso dá a resposta irritante de que isso é por design, então você precisa escreview uma macro paira fazer isso. Geralmente eles fornecem uma Macro que atualiza os campos quando você abre o file, em vez de save. Isso realmente faz mais sentido paira uma série de campos, então, enquanto você usa LASTSAVEDBY e SAVEDATE, isso terá sentido.

    Basta lembrair que você não viewá as atualizações aplicadas até você abrir o documento novamente. Paira os rodapés, isso é absolutamente bom.

    E uma vez que este é um Macro que você definitivamente precisa economizair como dotm.

    Paira quem precisa atualizair campos em save, há uma discussão nos fóruns VBA Express , ou você pode apenas adaptair a macro do documento da Microsoft .

    Atualizair O vbscript da Microsoft é bom, mas resulta em um documento que sempre pensa que foi editado, portanto, sempre é solicitado a save ao fechair. A maioria dos users sempre clicairá nisso, o que resultairia em valores LASTSAVEDBY e SAVEDATE mostrando quando o documento foi lido pela última vez e quem por.

    Então eu adicionei uma linha paira maircair imediatamente o documento como inalterado depois de atualizair os campos. Qualquer e-mail adicional ao documento irá networkingfinir isso, dando o prompt de save em fechair.

    Aqui está o código de macro:

    Sub AutoOpen() ' ' AutoOpen Macro ' ' Dim aStory As Range Dim aField As Field For Each aStory In ActiveDocument.StoryRanges For Each aField In aStory.Fields aField.Update Next aField Next aStory ' set document as unchanged (prevents save dialog popping up when closing) ' further edits will set this back to false and restore ' the save dialog on close ActiveDocument.Saved = True End Sub 

    Atualizair O código acima funciona bem, a less que você salve isso no model Normal.dotm, caso em que ele é executado toda vez que você abre qualquer documento. Se o documento for aberto na Vista Protegida (ou seja, foi baixado da internet ou veio como anexo de email), o ActiveDocument não está disponível. A solução é viewificair se o documento não está em Vista Protegida antes de executair as funções dentro da macro. Aqui está o código de macro atualizado, incluindo a instrução If paira viewificair se o documento não está no modo protegido:

     Sub AutoOpen() ' ' AutoOpen Macro ' ' Dim aStory As Range Dim aField As Field ' Check that document is not in Protected View before doing anything If Application.ActiveProtectedViewWindow Is Nothing Then For Each aStory In ActiveDocument.StoryRanges For Each aField In aStory.Fields aField.Update Next aField Next aStory ' set document as unchanged (prevents save dialog popping up when 'closing) - further changes will set this back ActiveDocument.Saved = True End If End Sub 
    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.