VBA Excelreplace不总是工作

好的,现在真的很烦人了。

最终我想添加一些ifs和其他的代码,但现在我只是有下面的代码。

' resize string if nessuary sname = Replace(arr(x), "ASR Port Provisioning General Questions", "General Questions") sname = Replace(arr(x), "ASR Port Provisioning", "ASR PP") sname = Replace(arr(x), "ASR Standard Network Device Config Changes", "Std Config Change") If Len(sname) > 30 Then sname = Right(sname, 15) 

arr()有元素

 "ASR Port Provisioning General Questions", "ASR Port Provisioning", "ASR Standard Network Device Config Changes" 

现在为“ASR标准networking设备configuration更改”它的工作原理和缩短到“标准configuration更改”

但是对于另外两个人来说,他们会滑雪,而不是取代?

现在我知道他们包含corrent信息,我甚至尝试输出arr(x)来形成seachstring,但它仍然不会发生:)

OK好像需要整理一下,一旦包揽就好了

如果InStr(arr(x),“ASR Port”)那么

  If InStr(arr(x), "ASR Port Provisioning General Questions") Then sname = "General Questions" Else sname = Replace(arr(x), "ASR Port Provisioning", "ASR PP") End If Else sname = Replace(arr(x), "ASR Standard Network Device Config Changes", "Std Config Change") End If 

工作好! 任何一个knwo乳清三个replace名单ogather停止对方工作?

在你的第一个代码块中,问题是你重置每个调用的sname的值,因此只有最后一个“粘”。 您可能需要另一个arrays来存储所有replace的值,或者您可以更新现有的arrays,或者在进行replace之后,可以在每个项目上执行您的工作。 我们需要更多地了解你正在处理的数据。

在第二个代码块中, ASR Port不能在stringarr(x) ,因此它只执行Else语句。

我猜你正在尝试做这样的事情:

 If InStr(arr(x), "ASR Port Provisioning General Questions") Then sname = Replace(arr(x), "ASR Port Provisioning General Questions", "General Questions") ElseIf InStr(arr(x), "ASR Port Provisioning") Then sname = Replace(arr(x), "ASR Port Provisioning", "ASR PP") Else sname = Replace(arr(x), "ASR Standard Network Device Config Changes", "Std Config Change") End If