我需要更改一个引用网址的常量。我们的ADI模板有一个新的服务器路径,更新代码比下载所有新模板更容易。如何更新以下内容:
Const SERVLET_PATH = "http://webaddress.com"
到
Const SERVLET_PATH = "http://webaddress1.com"
这甚至可能吗?
答案 0 :(得分:1)
首先,您需要添加对Microsoft Visual Basic for Applications Extensibility 5.3库的引用。
点击工具>>参考>> Microsoft Visual Basic for Applications可扩展性5.3
然后你需要open the workbook包含你想要更新的模块。这意味着当用户打开工作簿时,您无法进行此更新。
Workbook.Open filePath
接下来,您需要遍历工作簿中的每个代码模块,寻找您希望更改的常量。
Sub replaceConstant()
Dim project As VBIDE.VBProject
For Each project In Application.VBE.VBProjects
Dim codeMod As VBIDE.CodeModule
Dim component As VBIDE.VBComponent
For Each component In project.VBComponents
If component.Name <> "TheVeryUniqueNameOfTheCodeModuleWhereThisCodeResides" Then
Set codeMod = component.CodeModule
Dim startline As Long
startline = 1 'find takes startline in byref and uses it as an output parameter.
codeMod.Find Target:="Const SERVLET_PATH = ""http://webaddress.com""", _
startline:=startline, startcolumn:=1, endline:=codeMod.CountOfLines, endcolumn:=1
codeMod.ReplaceLine startline, "Const SERVLET_PATH = ""http://webaddress1.com"""
End If
Next component
Next project
End Sub
以上代码的工作原理是:
Find方法接受ByRef Long参数。输入后,这些参数指定要搜索的行和列的范围。在输出时,这些值将指向找到的文本。
CPearson.com - Programming the VBA Editor
当然,您需要为要更改的每个工作簿执行此操作。这可能需要一些时间。
更多资源: