微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决工作表中间停止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 举报,一经查实,本站将立刻删除。