excel vba 操作word 替换指定内容并复制到指定文件夹

Private Sub CommandButton1_Click()

'读取目标文本,并替换后生成新的文本
    Dim objApp As Object 'Word.Application
    Dim objDoc As Object 'Word.Document
    Dim strTemplates As String '模板文件路径名
    Dim strFileName As String '将数据导出到此文件
    
    '工具-引用
    'Microsoft Word 16.0 Object Library (版本不一,不一定为16)
    '当发现找不到上面的引用或引用后无效的情况下,定义一个常量wdReplaceAll = 2 ,数字2代表替换所有出现的指定内容。若能引用上边的包,可不定义这个常量。

    Const wdReplaceAll = 2 '替换所有出现的指定内容
       
    strTemplates = ThisWorkbook.Path & "\模板.doc"
    strFileName = ThisWorkbook.Path & "\数据修改后文本存储夹\替换后文本.doc"
    Set objApp = CreateObject("Word.Application")
    objApp.Visible = True
    Set objDoc = objApp.Documents.Open(strTemplates, , False)
 
  '开始替换模板预置变量文本
   With objApp.Application.Selection
        .Find.ClearFormatting
        .Find.Replacement.ClearFormatting
        With .Find
             .Text = "{$内容1}"
             .Replacement.Text = "内容11111"
        End With
        .Find.Execute Replace:=wdReplaceAll
 
        With .Find
             .Text = "{$内容2}"
             .Replacement.Text = "内容22222"
        End With
        .Find.Execute Replace:=wdReplaceAll
 
       With .Find
            .Text = "{$内容3}"
            .Replacement.Text = "内容3333"
       End With
       .Find.Execute Replace:=wdReplaceAll
    End With
 
    '将写入数据的模板另存为文档文件
    objDoc.SaveAs strFileName
    objDoc.Saved = True

End Sub

这段代码主要是解决:替换模板 .doc 中的指定内容1、2、3,并将新生成的文本保存到指定路径下。主要容易出现的问题是,要使用此功能需要在工具-引用中,引用Microsoft Word 16.0 Object Library ,但在实际操作时,此包可能找不到或路径有问题,导致引用不上。所以建议不引用此包,直接将变量替换成数字常量,如:Const wdReplaceAll = 2 ,就能成功运行。如果解决了各位的问题请多多点赞收藏。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值