【发布时间】:2015-09-05 03:47:40
【问题描述】:
目前我开发了一个比较复杂的DCS工程源文件的操作工具。因此我必须替换某些“TagNames”。
替换适用的代码:
For g = 8 To amountofreplace 'replace the string with every potential transition
With Sheets("Compare")
orgi = .range("L" & g).Value
copy = .range("J" & g).Value
tmp_string = Replace(tmp_string, copy, orgi)
End With
一个例子是 tmp_string = 200TT-50 或 200TX-50 或 200GG-50
这应该过渡到 350TT-50 或 350TX-50 或 350GG-50
所以现在我要添加过渡 200TT --> 350TT 200TX --> 350TX
但我更喜欢应用这种过渡 200 美元 --> 350 美元
$ 表示一个字符 [A-Z],因此当它被应用时,它将直接应用我上面提到的所有转换。
通配符不适用于替换功能。谁有线索?因为我会一直填写不同的过渡。所以 Regex 对我来说似乎不是一个解决方案。
提前致谢,
【问题讨论】:
-
为什么你认为正则表达式对你不起作用?确实你不能用它改变大小写,但你可以找到小写字母,用
uCase()改变大小写,然后像现在一样将它替换为原始字符串。 (tmp_string=Replace(tmp_string, RegExResult, uCase(RegExResult))其中 RegExResult 是正则表达式搜索找到的小写字母) -
不清楚您的问题是什么。 Replace(tmp_string, "200","350",1,1) 将任何 200$$ 更改为 350$$ ,无论 $$ 是什么。忘记正则表达式——你甚至没有解释为什么在替换函数中需要通配符。
-
扩展我之前的评论:对于长度至少为 5 的字符串,“应用过渡 200$$ --> 350$$”和“应用过渡 200 --> 350 英寸?
标签: vba excel replace wildcard