2010-08-19 15 views
0

J'utilise un "template.docx" pour copier dans mon "newDoc.docx" afin d'utiliser des styles ou des illustrations prédéfinis. Mais avec ce nouveau contenu, je veux mettre à jour les champs et ma table des matières, donc c'est facile de le faire avec un script vba, l'utilisateur n'a rien à faire.Copiez docx du modèle et utilisez-le comme nouveau

Mais j'ai un problème, je veux juste une exécution à la première ouverture. Mais si j'utilise la méthode document_new, mon docx n'est pas connu comme nouveau. Alors, comment puis-je "définir" comme un nouveau fichier/doc quand je le copie? Ou peut-être que je dois utiliser une variable vba, le modifier lors de la mise à jour pour empêcher les autres mises à jour?

Thx tous!

+0

Je suppose que je suis confus ici - cherchez-vous à faire cela dans VBA, VBScript ou Open XML SDK/C#? Pouvez-vous poster votre code et ensuite nous pouvons commenter? –

Répondre

0

Je génère le document basé sur un docx avec C# en utilisant open xml sdk.

Dim oStory As Range 
Dim oField As Field 
For Each oStory In ActiveDocument.StoryRanges 
    For Each oField In oStory.Fields 
    oField.Update 
    Next oField 
Next oStory 

mais je souhaite exécuter une seule fois pour la première ouverture.