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.Range
和objDoc.Sections.Footers.Range
访问Word 页眉和页脚中的范围
好的,我尝试使用它,但我对该功能了解不多,我用谷歌搜索并发现有人使用“objDoc.Sections.Headers.Range.Select”但它没有t 对我有用,“请求的集合成员不存在。”
看这个:***.com/questions/49185230/…
【参考方案1】:
我创建了一个带有单页、页眉和页脚的测试文档,页脚使用关键字“VAR_DATA”。下面的示例代码将搜索文档中的所有页脚并进行替换。请注意,代码 only 在 Section(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文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何让VBA自动响应word或excel打开文件时自动出现的消息框
谷歌浏览器Chrome如何直接打开Word, Excel和PPT文档