2017-09-28 54 views
4

的選擇是含有下式的Excel工作表單元格:VBA Range.Replace不工作

=+'[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'嗎? – Jeeped

+1

這兩個字符串有些不同。我無法弄清楚什麼,但是當我複製公式中的文本並將其粘貼到vba中時,替換工作就會發生。兩者之間有些不同。 –

+1

當你說什麼都沒有發生時,你的意思是'Replace'不起作用?或者它取代但沒有數據更新?更換時是否出現錯誤?如果你用'F8'完成一項任務,那麼你會在哪裏找到你? – BruceWayne

回答

0

替換方法不起作用,因爲2個excel文件沒有相同的工作表,即工作簿'[AQ_0617 - solo nuova 272.xlsx]DETTAGLIO'不存在。因此,如果執行替換方法,最終公式將包含無效的參考文件