如何在不打开它的情况下运行宏。我之前问了同样的问题。 解决方案是:
Dim Word
Dim WordDoc
Set Word = CreateObject("Word.Application")
Word.Visible = False
Set WordDoc = Word.Documents.open("D:\working_folder\abc.doc")
Word.Run "<macroname>"
WordDoc.Save
Word.Quit
Set WordDoc = Nothing
Set Word = Nothing
这对我来说也很好,但在这种情况下文件名是特定的("abc.doc"
)。
如果我想为同一文件夹中的所有word文件运行宏,该怎么办? 宏在所有这些文件中定义,我只想知道如何获取文件夹中的所有文件名。
未经测试,但是这样的事情:
Dim Word, fldr, f
Dim WordDoc
Set Word = CreateObject("Word.Application")
Word.Visible = False
fldr = "D:\working_folder\"
f = Dir(fldr & "*.doc*")
Do while f<>""
Set WordDoc = Word.Documents.open(fldr & f)
Word.Run "<macroname>"
WordDoc.Save
WordDoc.Close
f = Dir()
Loop
Word.Quit
Set WordDoc = Nothing
Set Word = Nothing
但是,如果不打开包含它的文件,则无法运行宏。