如何在VBA word中修剪或拆分变量名
我有这样一个变量:如何在VBA word中修剪或拆分变量名,vba,trim,ms-word,Vba,Trim,Ms Word,我有这样一个变量: var = "word1 (should be replaced by word1)" 我需要得到单词1本身,有时它可能是一个单词,但它后面总是有(*)。有没有办法删除()符号之间的文本,然后删除(),然后删除最后一个单词后面的空格 我不知道该怎么办。像这样吗 Sub Sample() Dim sVar As String Dim MyAr() As String sVar = "word1 (should be replaced by word1
var = "word1 (should be replaced by word1)"
我需要得到单词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
最简单的方法是:
var = Trim(Mid(var, 1, InStr(var, "(") - 1))
InStr
返回“(”的第一次出现的索引。我减去1以贴现“(”持有的头寸
Mid
将字符串从位置1的第一个字符剪切到InStr
返回的索引
然后
Trim
删除尾随空格。我将使用SPLIT函数
arrayVar2 = split(var, "(" )
现在将有一个包含2个元素的数组
拆分第二个元素
arrayVar3 = split( arrayVar2[1], ")" )
然后加入:
out = arrayVar2[0] & arrayVar3[1]
只要字符串中只有一组括号,这就行了
另一种方法是使用正则表达式库,但这是一个较长的答案。虽然效率不高,但如果需要处理更复杂的字符串,效果会更好
更新:我的回答比可能需要回答的问题更进一步。我的解决方案确保删除括号内的文本-括号内文本之后的任何文本也将保留。是的,我想我们两人同时写下了答案:)虽然我很挑剔,但我还是要指出,我的答案稍微完整一些,因为它允许在括号内的文本之后添加文本,因此它删除了括号内的文本,这就是要求的内容。;)没有10分钟的差异,但也可以:)关于代码更完整,我将把决定权留给您:)用户只想提取“(”;)之前的文本