我的目标是使用单元格引用通过打开某个单词文档并将单元格或字符串传递到位于单词VBA中的查找宏中来搜索单元格中的文本字符串。本质上,我试图将变量从excel宏传递到word宏。我无法完成这项工作。我的目标是将变量传递Party
给名为macro5的Word宏。我可以通过不传入参数,而只是在word宏中的文本中进行硬编码来使下面的代码起作用,但是当我尝试从excel传递参数时,它不起作用。任何帮助将不胜感激。
我的Excel宏代码:
Sub Open_Correct_WordDOC()
' Open_Correct_WordDOC Macro
Dim WordApp As Object
Dim WordDoc As Object
Dim Party As String
Party = "commercial"
MsgBox Party
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(Filename:="J:enterdocumenthere.docx", _
ReadOnly:=True)
WordApp.Visible = True
WordApp.Run "Normal.NewMacros.Macro5", Party
Set WordDoc = Nothing
Set WordApp = Nothing
End Sub
字宏代码:
Sub Macro5(xlvar As String)
Selection.Find.ClearFormatting
With Selection.Find
.Text = xlvar
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.Find.Execute
End Sub
在excel模块中:
Option Explicit
Public WordApp As Object
Public WordDoc As Object
Public Party As String
Sub Open_Correct_WordDOC()
' Open_Correct_WordDOC Macro
Party = "commercial"
MsgBox Party
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(Filename:="H:\docsearch.docx", ReadOnly:=True)
WordApp.Visible = True
WordApp.Activate
WordApp.Run "Macro5", Party
Set WordDoc = Nothing
Set WordApp = Nothing
End Sub
我认为您的问题是您在excel宏中声明了对象和字符串。我将它们公开,对我而言,代码可以正常工作。
插件:Word宏位于“普通”模板下的模块中。这对我来说很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句