我在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
我不确定它是否与我打开或保存文件的方式有关。至少如果它根本不起作用我会知道代码是错的,但因为它至少在一个新文档上工作了一次......我不知道。
提前致谢。
答案 0 :(得分:10)
好的,我现在就开始工作了。 Word有.Saved
布尔值,显然如果它已设置为true,则在使用.Save
时它不会保存更改并且通过VBA更改属性似乎不算是一个足够重要的更改将.Saved
设置为false。也许.SaveAs
仍然有用。无论如何,我在.Saved = False
之前添加了.Save
,现在工作正常。
只是想让任何人知道在某些时候谁可能会思考同样的事情。这可能只是确保文件始终保存的一种不错的方法。