excel中如何通过VBA打开word文件和ppt文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel中如何通过VBA打开word文件和ppt文件?相关的知识,希望对你有一定的参考价值。

参考技术A 一、打开word文件代码:Set wo = CreateObject("Word.Application")\\x0d\\x0awo.Documents.Open ThisWorkbook.Path & "\流程.doc"\\x0d\\x0awo.Visible = True\\x0d\\x0a二、打开ppt文件代码:方法1:\\x0d\\x0aSet wo = CreateObject("Powerpoint.Application")\\x0d\\x0awo.Visible = True\\x0d\\x0awo.Presentations.Open ThisWorkbook.Path & filename方法2:Sub dd()Dim filepath$, filename$\\x0d\\x0afilepath = Chr(34) & ThisWorkbook.Path & filename & Chr(34)\\x0d\\x0aShell "POWERPNT.EXE " & filepathEnd Sub附:双击打开PPS文件,在演示完后退出PPS时并没有PowerPoint主窗口保留,但在Excel中使用VBA打开的PPS文件,在演示完PPS退出后,PowerPoint主窗口仍然打开。\\x0d\\x0a这里使用一个循环判断演示窗口是否存在,加上错误捕捉程序来处理上面这个问题。\\x0d\\x0aPrivateSub CommandButton1_Click()\\x0d\\x0aDim wo AsObject Dim app AsObject\\x0d\\x0a\' 创建PowerPoint应用实例\\x0d\\x0aSet app = CreateObject("Powerpoint.Application")\\x0d\\x0a\' 使PowerPoint可见\\x0d\\x0aapp.Visible = True \' 打开PPS文件\\x0d\\x0aSet wo = app.Presentations.Open(ThisWorkbook.Path & "\a.pps")\\x0d\\x0a\' 当PPS演示结束时,wo对象的SlideShowWindow不存在,捕捉到错误\\x0d\\x0aOnErrorGoTo errHandle\\x0d\\x0a\' PPS演示时全屏

使用 Excel VBA 宏在 Word 中查找和替换页脚文本

【中文标题】使用 Excel VBA 宏在 Word 中查找和替换页脚文本【英文标题】:Find and Replace footer text in Word with an Excel VBA Macro 【发布时间】:2019-08-27 10:01:34 【问题描述】:

我正在尝试在 Excel 中创建一个 macro,它会打开一个 Word 文档,找到一个位于 Word 文档中的 especify 文本strong>footer 在 word doc 中,并将其替换为文本。

目前,我的宏打开了 doc 这个词,但我不知道如何进入页脚并找到这些文本。

    Dim objWord
    Dim objDoc
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "/NotaPromissoriaAutomatica.docx")
    objWord.Visible = True

页脚有两个需要替换的文本

1 - VAR_CIDADE > 将替换当前城市(在我的 Excel 表的 A1 中) 2 - VAR_DATA > 将替换当前日期(在我的 Excel 表的 A2 中)

【问题讨论】:

我认为您可以使用邮件合并到页眉/页脚中,这可能更容易... 它不能按我的意愿工作,我在使用邮件合并时,可以从我的 excel 表中获取文本,但它不会自动更新,我不知道我是否有更改任何配置...我的意思是,如果我用 excel VBA 打开文档,它不会更新,如果我手动打开,它会更新... 您可以使用objDoc.Sections.Headers.RangeobjDoc.Sections.Footers.Range 访问Word 页眉和页脚中的范围 好的,我尝试使用它,但我对该功能了解不多,我用谷歌搜索并发现有人使用“objDoc.Sections.Headers.Range.Select”但它没有t 对我有用,“请求的集合成员不存在。” 看这个:***.com/questions/49185230/… 【参考方案1】:

我创建了一个带有单页、页眉和页脚的测试文档,页脚使用关键字“VAR_DATA”。下面的示例代码将搜索文档中的所有页脚并进行替换。请注意,代码 onlySection(1) 中搜索。如果您有更多部分,则可能必须创建一个外部循环来搜索每个部分中的每个页脚。

Option Explicit

Public Sub FixMyFooter()
    Dim myWord As Object
    Dim myDoc As Word.Document
    Set myWord = CreateObject("Word.Application")
    Set myDoc = myWord.Documents.Open("C:\Temp\footertest.docx")

    Dim footr As Word.HeaderFooter
    For Each footr In myDoc.Sections(1).Footers
        With footr.Range.Find
            .Text = "VAR_DATA"
            .Replacement.Text = Format(Now(), "dd-mmm-yyyy")
            .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindStop
        End With
    Next footr

    myDoc.Save
    myWord.Quit
End Sub

您需要扩展示例以使用您自己的格式查找其他文本。

【讨论】:

以上是关于excel中如何通过VBA打开word文件和ppt文件?的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA操作word文件

如何让VBA自动响应word或excel打开文件时自动出现的消息框

谷歌浏览器Chrome如何直接打开Word, Excel和PPT文档

如何在Excel VBA 中读写word文档 步骤

Word、Excel、PPT等Office软件打开速度慢的一种解决办法

如何将excel表格转成在线文档