VBA范围替换不起作用。

4
选择是一个包含以下公式的Excel工作表单元格:
=+'[FORECAST MARZO RESTRUCTURING ITALY 20170403 V3.xlsx]DETTAGLIO'!$BA$20

我运行了以下VBA代码:

Selection.Replace what:="[FORECAST MARZO RESTRUCTURING ITALY 20170403 V3.xlsx]", _
Replacement:="[AQ_0617 - solo nuova 272.xlsx]" _
   , LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat _
  :=False, ReplaceFormat:=False

执行代码后,我期望公式变为:
=+'[AQ_0617 - solo nuova 272.xlsx]DETTAGLIO'!$BA$20

但是什么也没有发生。有什么线索吗?

2
AQ_0617 - solo nuova 272.xlsx 是一个打开的工作簿吗?你使用 On Error Resume Next 吗? - user4039065
1
这两个字符串有所不同。我无法确定是什么,但当我从公式中复制文本并将其粘贴到VBA中时,替换有效。这两者之间有所不同。 - Scott Craner
1
当你说什么也没发生时,是指“替换”不起作用吗?还是它确实进行了替换,但没有数据更新?替换时没有出现错误吗?如果使用“F8”逐步执行,是否有任何进展? - BruceWayne
我已经使用上述代码创建了一个子程序,并成功地替换了字符串。 - Nikolaos Polygenis
"Nothing happens" 意味着我没有收到错误消息,并且在代码执行后公式保持不变。没有使用 "on error resume next"。执行代码时,涉及的 2 个 xlsx 文件都是打开状态。 - Raffaele
如果我使用F8执行,什么也不会发生,就像执行a=1一样。 - Raffaele
1个回答

0
replace 方法不起作用,因为这两个 Excel 文件的工作表不同,即工作表 '[AQ_0617 - solo nuova 272.xlsx]DETTAGLIO' 不存在。所以如果执行了 replace 方法,则最终公式将包含无效引用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接