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

问题描述 投票:0回答:1

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

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文件运行宏,该怎么办? 宏在所有这些文件中定义,我只想知道如何获取文件夹中的所有文件名。

vba word-vba
1个回答
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

但是,如果不打开包含它的文件,则无法运行宏。

© www.soinside.com 2019 - 2024. All rights reserved.