我有一个包含两列和100行的Excel文档。一列是单词文档中要查找的单词,第二列是我想用替换搜索单词的单词。
我想遍历excel表中的每一行,并使用输入来搜索和替换word文档。
我在Access中遇到过VBA的经验,但之前从未使用过Word或Excel,我很困惑。
我认为可行的功能是:
function replace(find,replace)
with activedocument.content.find
.forward=True
.wrap=wdFindContinue
.Execute fintext:=find,replacewith:=replace,matchcase:=False,matchwholeword:=True
end with
end function
在访问中,您将在事件中调用该函数,但单词没有事件。我只是想运行代码。当我选择运行一个表单,要求我创建一个宏时,我迷路了。
如何在Word中运行vba代码?
由于
答案 0 :(得分:2)
要在Word中运行VBA代码,请按Alt-F8
它将在文档中显示包含所有可用公共子或函数的表单。
例如:
Option Explicit
Public Sub myFindAndReplace()
Const MAX_ITEMS As Long = 3
Dim i As Long, arr1(1 To MAX_ITEMS) As String, arr2(1 To MAX_ITEMS) As String
arr1(1) = "find1"
arr1(2) = "find2"
arr1(3) = "find3"
arr2(1) = "replace1"
arr2(2) = "replace2"
arr2(3) = "replace3"
With Application.ActiveDocument.Content.Find
.ClearFormatting
.Replacement.ClearFormatting
For i = 1 To MAX_ITEMS
.Text = arr1(i)
.Replacement.Text = arr2(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
Next
End With
End Sub
返回Word单击Alt-F8,您将获得可用的宏:
Word在VBA模块中有以下事件 ThisDocument (在项目下带有您的文件名):
现在你可以
构建整个两个数组(在Word中)并直接在代码中使用它们,如示例Sub
或者打开Excel文件并遍历每一行以在Word中执行替换
选项2更复杂