如何在不打开的情况下运行宏?

时间:2016-08-29 05:49:18

标签: vba word-vba

如何在不打开的情况下在word中运行宏。 我之前经历了同样的问题 解决方案是:

NSArray

这对我也很有用,但在这种情况下文件名是特定的(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 )。

如果我想为同一文件夹中的所有word文件运行宏,该怎么办? 宏在所有这些文件中定义,我只想知道如何获取文件夹中的所有文件名。

1 个答案:

答案 0 :(得分:2)

未经测试,但是像这样:

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

您无法在不打开包含该文件的文件的情况下运行宏。