工作表中间停止Range.Replace方法

问题描述

在我的设置中,我有一个Excel插件,可将模板从其自身复制到用户指定的工作簿。 在过程结束时,将使用以下代码将相对引用中的所有外部链接重定向回到已将模板复制到的工作簿中。

For Each WS In ActiveWorkbook.Worksheets
    WS.Cells.Replace what:=ThisWorkbook.Name,Replacement:=ActiveWorkbook.Name
Next

但是在一页上,有几个未替换的链接,尽管代码正确地在该工作表上运行,因为某些链接已正确重定向。 我尝试将“ Lookat:= XLPart”和“ MatchCase:= False”参数添加代码中没有任何效果。 我确实注意到,更改“ SearchOrder”参数确实会更改代码页面中运行的距离。 Microsoft网站文档中没有提到Range.Replace方法有一些数值限制吗?

Edit1:对不起,我想我没有弄清楚。上面的代码在Excel插件中运行,该插件将模板从自身复制到工作簿。由于这些模板中都有相对引用,因此在复制时它们会转到外部引用,这就是我要替换的内容。在代码中,Thisworkbook指的是插件,而Activeworkbook是将模板复制到的工作簿。当外部引用中插件名称替换为它们所在的工作簿的名称时,它们将转到相对引用。

因此,链接的结构应为“ =![Thisworkbook.name] Sheet1'!F17”。 excel将“ Thisworkbook.name”替换为“ Activeworkbook.name”后,Excel意识到它是相对引用,因此会将公式重写为“ ='Sheet1'!F17”。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)