我有一个这样的变量:
var = "word1 (should be replaced by word1)"
我需要单独获取word1,有时它可能是一个单词,但它总是会有(*)。有没有办法删除()符号之间的文本,然后删除(),然后删除最后一个单词后面的任何空格?
不确定是否有任何办法。
答案 0 :(得分:1)
喜欢这个吗?
Sub Sample()
Dim sVar As String
Dim MyAr() As String
sVar = "word1 (should be replaced by word1)"
MyAr = Split(sVar, "(")
Debug.Print MyAr(0)
End Sub
修改强>
上述代码可以进一步缩短
Sub Sample()
Dim sVar As String
sVar = "word1 (should be replaced by word1)"
Debug.Print Split(sVar, "(")(0)
End Sub
答案 1 :(得分:1)
最简单的是:
var = Trim(Mid(var, 1, InStr(var, "(") - 1))
InStr
返回"的第一次出现的索引("。我减去1来折扣"("。
Mid
将字符串从位置1的第一个字符切割为InStr
返回的索引。
然后Trim
删除尾随空格。
答案 2 :(得分:1)
我会使用SPLIT功能。
arrayVar2 = split(var, "(" )
现在您将拥有一个包含2个元素的数组。
拆分第二个元素
arrayVar3 = split( arrayVar2[1], ")" )
然后加入:
out = arrayVar2[0] & arrayVar3[1]
只要字符串中只有一组括号,它就会起作用。
另一种方法是使用正则表达式库,但这是一个更长的答案。它不会那么高效,但如果需要处理更复杂的字符串会更好。
更新:我比可能要求的问题更进一步。我的解决方案确保删除括号内的文本 - 括号内的文本也会保留。