我正在尝试创建一个宏,其中包括更新多个单元格中的外部文件链接,其中当前在单元格中的文件位置以及我想要将其更改为的文件位置由另一个选项卡中的用户指定
我试过通过find / replace来做到这一点;如果我尝试使用代码中指定的文本执行此操作:
Range("b3").Formula = Replace(Range("B3").Formula, "\\folder\file", "\\folder\newfile")
然后它将替换此文本并正确更新链接。如果我使用输入更改位置,请说 oldlocation 和 newlocation :
oldlocation= "\\folder\file"
newlocation= "\\folder\newfile"
Range("b3").Formula = Replace(Range("B3").Formula, oldlocation, newlocation)
这也行得通。但是,如果我更改位置的定义(例如B3:“\ folder \ file”):
oldlocation= Range("b3").text
newlocation= Range("b4").text
它不再有效 - 通过代码中的行而没有任何更改或错误。我做了一个快速检查和范围(“b3”)。文本& “\ folder \ file”似乎都是文本字符串;在那之后我很难过。我已经尝试了一些我发现的不同的查找/替换格式,但都具有相同的结果。我错过了什么?
答案 0 :(得分:0)
问题在于您将要替换的字符串定义为
oldlocation= Range("b3").text
oldlocation
变量将具有单元格的值(您在单元格中看到的数据)而不是包含当前引用的单元格的公式,因此replace函数找不到要替换的字符串。
您必须从Range("b3").formula
字符串中提取要替换的位置并使用该字符串。