利用VBA代码实现引用级替换
2015-04-29王志军
王志军
例如“山药”替换为“土豆”、“金瓜”替换为“南瓜”,诸如此类,由于需要替换的词条比较多,手工替换显然比较麻烦,其实我们可以利用VBA代码实现上述的引用级替换需求:
首先在Excel制作对照表,创建“原词”和“新词”两列,分别输入相关的词条,保证所有已打开的Excel文件已经处于关闭状态。接下来打开需要实现替换的Word文档,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入/模块”,在右侧窗格插入一个空白模块(如图1),在这里手工输入或粘贴代码(关注电脑迷微信回复“201505vba1”获取下载链接)。
上述代码中的“ ActiveDocument.Content.Find.Execute findtext:=.Range("a" & i), replacewith:=.Range("b" & i), Replace:=wdReplaceAll, Forward:=True”行表示将Excel工作表的A列内容替换为B列内容,因此如果“原词”和“新词”的位置不在A、B列,请根据实际情况进行修改。代码检查无误之后,选择“文件/关闭并返回到Microsoft Excel”,返回Excel主界面,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行宏,很快就可以实现批量替换的需求。
如果运行代码后提示“用户定义类型未定义”的编译错误,请仍然进入Microsoft Visual Basic for Applications编辑器窗口,从“工具”菜单下打开“引用”对话框(如图2),在“可使用的引用”列表下勾选“Microsoft Excel 15.0 Object Library”复选框,这是由于笔者使用的Excel是2013版本,其他版本请根据实际情况进行选择,确认之后关闭对话框。重新返回Excel主界面,此时运行VBA代码就不会有错误信息出现了。