如何在字符串VBA中查找和复制特定文本?

时间:2016-07-05 14:41:25

标签: vba

我有一堆字符串,我需要从中提取电话号码,我如何设法从这个字符串中获取它们并粘贴到工作表中,知道它们都具有格式 (??)???? - ????哪里?是一个从0到9的随机数,知道同一个字符串中可能有多个电话号码?

示例:

"Acreaves Alimentos. Rodovia Do Pacifico, (68) 3546-4754 Br 317, Km 8, S/N - Zona Rura... Brasileia - AC | CEP: 69932-000. (68) 3546-5544. Enviar "

会返回(68) 3546-4754 and (68) 3546-5544

3 个答案:

答案 0 :(得分:2)

我在这里有一段代码,它为您指定的格式设置正则表达式并搜索字符串,然后为它找到的每个实例提供class ItemList extends Component{ constructor(props){ super(props); } onDeleteItem(event){ var indexNum = this.props.items.indexOf(document.querySelector(".ion-trash-b").parentElement.textContent) } render(){ var items = this.props.items.map(function(todo, index){ return ( <Item key={index} todo={todo} onDeleteItem={this.onDeleteItem.bind(this)} /> ) }.bind(this) return ( <div>{items}</div> ) }

您需要确保已添加(使用工具 - >参考)msgbox引用,否则您最初将无法创建Microsoft VBScript Regular Expressions 5.5对象。

在这种情况下,正则表达式模式被指定为允许括号(使用RegExp转义,否则它在正则表达式中具有特殊含义),然后两个数字,每个数字可以是0-9,a关闭括号(再次转义),\表示空格,后跟字符集0-9中的4位数字,短划线(再次转义)和0-9设置中的最后四位数。

不要忘记将regex Global属性设置为True,以便返回所有匹配项。

\s

根据您提供的详细信息和字符串,您可以根据需要执行所需操作。

答案 1 :(得分:0)

如果格式实际上保持不变,您可以尝试这样的事情:

a = "Acreaves Alimentos. Rodovia Do Pacifico, (68) 3546-4754 Br 317, Km 8, S/N - Zona Rura... Brasileia - AC | CEP: 69932-000. (68) 3546-5544. Enviar "
arrNums = Split(a, "(")
For i = 1 To UBound(arrNums)
    num = "(" & Left(arrNums(i), 13)
Next

答案 2 :(得分:0)

此函数将返回包含数字的数组:

Function ReturnNumbers(s As String) As variant

    Dim s As String, a As Variant, r As Variant, i As Integer

    a = Split(s, "(")

    ReDim r(1 To UBound(a, 1))

    For i = 1 To UBound(a, 1)
        r(i) = "(" & Left(a(i), 13)
    Next

    ReturnNumbers = r

End Function