Word BuiltInDocumentProperties don't change

可紊 提交于 2019-12-23 11:57:41

问题


I have a macro in Word 2003 that applies the property fields of the open document to all the .doc's in the same folder. The code works once. If I create a folder, create three new documents in that folder, open of the documents and run the macro, it would work. If I open a document in that folder and run the macro again, it would only change the properties of the active document that ran the macro.

The macro is located in a module of the Normal template.

The code:

title = ActiveDocument.BuiltInDocumentProperties("Title")
subject = ActiveDocument.BuiltInDocumentProperties("Subject")
author = ActiveDocument.BuiltInDocumentProperties("Author")
manager = ActiveDocument.BuiltInDocumentProperties("Manager")
company = ActiveDocument.BuiltInDocumentProperties("Company")
category = ActiveDocument.BuiltInDocumentProperties("Category")
keywords = ActiveDocument.BuiltInDocumentProperties("Keywords")
comments = ActiveDocument.BuiltInDocumentProperties("Comments")

fileDirectory = ActiveDocument.Path

vFile = Dir(fileDirectory & "\*.doc")

Do While vFile <> ""
    Set wordDoc = Documents.Open(fileDirectory & "\" & vFile)
    With wordDoc
        .BuiltInDocumentProperties("Title") = title
        .BuiltInDocumentProperties("Subject") = subject
        .BuiltInDocumentProperties("Author") = author
        .BuiltInDocumentProperties("Manager") = manager
        .BuiltInDocumentProperties("Company") = company
        .BuiltInDocumentProperties("Category") = category
        .BuiltInDocumentProperties("Keywords") = keywords
        .BuiltInDocumentProperties("Comments") = comments
        .Save
        .Close
    End With
    vFile = Dir
Loop

I'm not sure if it has something with the way I'm opening or saving the files. At least if it didn't work at all I would know the code is just wrong, but since it works on a new document at least once... I have no idea.

Thanks in advance.


回答1:


Alright, I have it working now. Word has a .Saved boolean which apparently if it is set to true already it won't save the changes when you use .Save and changing the properties through VBA doesn't seem to count as a important enough change to set the .Saved to false. Maybe .SaveAs would still work though. Anyways, I added .Saved = False before the .Save and now it is working just fine.

Just wanted to let anyone know who might ponder the same thing at some point. This might just be a decent way to make sure that the file always saves.



来源:https://stackoverflow.com/questions/15932902/word-builtindocumentproperties-dont-change

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!