为多个word文件指定特定样式而不打开它们

时间:2014-07-01 10:48:45

标签: ms-word ms-office

我在单词中创建了一个新样式(通过"创建一个样式......")我希望将此样式分配给200个单词文件。一个接一个地打开它们并为它们分配样式是非常耗时的。有没有办法在不打开它们的情况下为它们分配样式?

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用Word VBA。

将要分配样式的200个Word文件放入不包含其他文件的目录中。然后在其他位置创建.dotm(Word 2007或更高版本)或.dot(Word 2003或更低版本)模板文件。创建要在模板文件中复制的样式,并将以下代码放入同一模板文件中的模块中(ALT-F11以访问编辑器):

Sub BatchCopyStyles()

'Make sure that the template that contains the style to be copied and this code 
'is open and acting as the active document before running this macro

Dim file As Variant
Dim folderPath As String 'path to files receiving the style
Dim targetPath As String 
Dim templateFile As String 'file that contains style and this code
Dim styleTemplate As Document

folderPath = "C:\Users\Joe\Desktop\TargetFolder\"
templateFile = "C:\Users\Joe\Desktop\CopyStyle.dotm"

Set styleTemplate = ActiveDocument
file = Dir(folderPath)

    While (file <> "")
        Set file = Documents.Open(FileName:=folderPath & file)
        styleTemplate.Activate
        targetPath = folderPath & file
        Application.OrganizerCopy Source:=templateFile, _
                    Destination:=targetPath, _
                    Name:="StyleToCopy", _
                    Object:=wdOrganizerObjectStyles
        file.Close wdSaveChanges
        file = Dir
    Wend
End Sub

编辑正确路径,文件名,样式名称等的代码。使用包含此代码的文件和要指定为Active Document的样式,从VBA编辑器运行宏(F5)。这将打开每个文件,复制样式,然后关闭该文件。打开和关闭文档200次并不漂亮,但它应该完成这项工作。