如何在VBA字中修剪或拆分变量名称

时间:2012-05-18 21:37:01

标签: vba trim word-vba

我有一个这样的变量:

var = "word1 (should be replaced by word1)"

我需要单独获取word1,有时它可能是一个单词,但它总是会有(*)。有没有办法删除()符号之间的文本,然后删除(),然后删除最后一个单词后面的任何空格?

不确定是否有任何办法。

3 个答案:

答案 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]

只要字符串中只有一组括号,它就会起作用。

另一种方法是使用正则表达式库,但这是一个更长的答案。它不会那么高效,但如果需要处理更复杂的字符串会更好。


更新:我比可能要求的问题更进一步。我的解决方案确保删除括号内的文本 - 括号内的文本也会保留。