专栏名称: 完美Excel
Excel与VBA技术学习与实践
目录
相关文章推荐
Excel之家ExcelHome  ·  这些Excel函数公式,简单又高效 ·  2 天前  
Excel之家ExcelHome  ·  AI赋能,效率倍增 ·  昨天  
Excel之家ExcelHome  ·  人人都要会的办公自动化大招 ·  4 天前  
Excel之家ExcelHome  ·  这些Excel公式,复杂计算变简单 ·  3 天前  
Excel之家ExcelHome  ·  常用函数学得好,一堆工作等你搞 ·  5 天前  
51好读  ›  专栏  ›  完美Excel

在Excel中控制Word

完美Excel  · 公众号  · Excel  · 2024-12-31 05:30

正文

学习Excel技术,关注微信公众号:
excelperfect

标签:VBAOffice整合应用

下面的代码先检查是否Word正在运行,如果是,则使用现有的Word实例;否则,创建一个新的Word实例。然后,新建Word文档,在其中输入“完美Excel”,再调出“查找与替换”对话框,查找“完美Excel”并替换为“excelperfect”,随着对话框的操作,将弹出一系列消息。最后,关闭Word

在运行代码之前,先要设置对“Microsoft Word 16.0 Object Library”的引用,如下图1所示。

1
完整的代码如下:

Sub ControlWordFromXL() Dim oWord As Word.Application Dim WordWasNotRunning As Boolean Dim oDoc As Word.Document Dim myDialog As Word.Dialog Dim UserButton As Long  '如果打开则获取现有的Word实例; 否则创建新的实例 On Error Resume Next Set oWord = GetObject(, "Word.Application") If Err Then   Set oWord = New Word.Application   WordWasNotRunning = True End If On Error GoTo Err_Handler oWord.Visible = True oWord.Activate Set oDoc = oWord.Documents.Add oDoc.Range.Text = "完美Excel" Set myDialog = oWord.Dialogs(wdDialogEditReplace) With myDialog   .Find = "完美Excel"   .Replace = "excelperfect" End With On Error Resume Next UserButton = myDialog.Display() On Error GoTo Err_Handler MsgBox "User Button = " & CStr(UserButton) MsgBox "Find = " & CStr(myDialog.Find) MsgBox "Replace = " & CStr(myDialog.Replace) MsgBox "Direction = " & CStr(myDialog.Direction) MsgBox "Wrap = " & CStr(myDialog.Wrap) MsgBox "Format = " & CStr(myDialog.Format) MsgBox "MatchCase = " & CStr(myDialog.MatchCase) MsgBox "WholeWord = " & CStr(myDialog.WholeWord) MsgBox "PatternMatch = " & CStr(myDialog.PatternMatch) MsgBox "FindAllWordForms = " & CStr(myDialog.FindAllWordForms) MsgBox "SoundsLike = " & CStr(myDialog.SoundsLike) MsgBox "FindNext = " & CStr(myDialog.FindNext) MsgBox "ReplaceOne = " & CStr(myDialog.ReplaceOne) MsgBox "ReplaceAll = " & CStr(myDialog.ReplaceAll) MsgBox "MatchByte = " & CStr(myDialog.MatchByte) MsgBox "FuzzyFind = " & CStr(myDialog.FuzzyFind) MsgBox "Destination = " & CStr(myDialog.Destination) oDoc.Close savechanges:=wdDoNotSaveChanges If WordWasNotRunning Then   oWord.Quit End If  '释放 Set oWord = Nothing Set oDoc = Nothing Set myDialog = Nothing '退出 Exit SubErr_Handler: MsgBox "Word导致问题. " & Err.Description, vbCritical, "错误: " _   & Err.Number If WordWasNotRunning Then   oWord.Quit End IfEnd Sub

注:本文代码整理自wordmvp.com,供参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

推荐文章
Excel之家ExcelHome  ·  这些Excel函数公式,简单又高效
2 天前
Excel之家ExcelHome  ·  AI赋能,效率倍增
昨天
Excel之家ExcelHome  ·  人人都要会的办公自动化大招
4 天前
Excel之家ExcelHome  ·  这些Excel公式,复杂计算变简单
3 天前
Excel之家ExcelHome  ·  常用函数学得好,一堆工作等你搞
5 天前
冷爱  ·  20岁女孩需要随身携带什么
8 年前
中国金融四十人论坛  ·  【CF40季度报告】一个关于“量平价升”的中国故事
7 年前