我想更改文本中的特定内容,因此需要找到所有的“;” 字符并将其更改为“ $”,但前提是它们在方括号中。
因此,可能有少数情况:
示例1文字(可以;不可以);好的应该是:文本(可以,$可以,不可以);好
示例2文字(可以;不可以);好的(tekst;)好的应该是:文本(可以,$可以,不能);好的(tekst $)好的
示例3文字(可以;(可以;)不可以);应该是:text(没关系,$($)没关系);
所以我从替换字符串代码开始,但是问题是我的代码现在即使在“)”之后也替换了字符,我不想要那样。
我应该以某种方式计算需要更改的字符串并设置开始位置并仅更改它们吗?但是然后的问题是,如果我们有更多的括号,它将无法正常工作。
最好的方法是什么?
Sub Removetext()
s = Range("A1").Value
Dim start As Integer
Dim end1 As Integer
start = InStr(1, s, "(")
end1 = InStr(1, s, ")")
s = Left(s, start - 1) & Replace(s, ";", "$", start)
End Sub
这是一种避免正则表达式的方法,因为我使用正则表达式的方式不足以记住如何进行正则表达式。
Sub x()
Dim i As Long, lb As Long, rb As Long, r As Range
Range("A1:A4").Copy Range("B1")
For Each r In Range("B1:B4")
For i = 1 To Len(r.Value)
If Mid(r, i, 1) = "(" Then lb = lb + 1
If Mid(r, i, 1) = ")" Then rb = rb + 1
If Mid(r, i, 1) = ";" Then
If lb > 0 And rb < lb Then r.Characters(i, 1).Text = "$"
End If
Next i
Next r
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句