Word BuiltInDocumentProperties不会更改

时间:2013-04-10 17:51:05

标签: vba word-2003

我在Word 2003中有一个宏,它将打开文档的属性字段应用于同一文件夹中的所有.doc。代码工作一次。如果我创建一个文件夹,在该文件夹中创建三个新文档,打开文档并运行宏,它将起作用。如果我在该文件夹中打开文档并再次运行宏,它只会更改运行宏的活动文档的属性。

宏位于Normal模板的模块中。

代码:

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

我不确定它是否与我打开或保存文件的方式有关。至少如果它根本不起作用我会知道代码是错的,但因为它至少在一个新文档上工作了一次......我不知道。

提前致谢。

1 个答案:

答案 0 :(得分:10)

好的,我现在就开始工作了。 Word有.Saved布尔值,显然如果它已设置为true,则在使用.Save时它不会保存更改并且通过VBA更改属性似乎不算是一个足够重要的更改将.Saved设置为false。也许.SaveAs仍然有用。无论如何,我在.Saved = False之前添加了.Save,现在工作正常。

只是想让任何人知道在某些时候谁可能会思考同样的事情。这可能只是确保文件始终保存的一种不错的方法。