VBA搜索“。”以及之后是什么

时间:2018-08-15 19:03:16

标签: excel vba excel-vba

我想在VBA上执行相当复杂的搜索。我要查找的是列中包含“。”的所有内容。 (句号/句号)后跟一位数字。

即类似于xxxx.0xxx或xx.1.xxx ...的任何内容

请注意,句号可以出现在字符串的任何位置。

要在字符串中查找句号比较简单,我坚持使用For循环遍历Column:

If InStr(1, String.value, ".") Then
     'do vba code
End If

挑战在于如何隔离和识别句号后面的单个字符。

使用此公式时,我可以得到句号及其旁边的内容。但是只是它旁边的字符:

Mid(String.value, InStr(1, String.value, "."), 2)

你们能告诉我最好的方法是什么吗?

修改

样本数据和结果:

enter image description here

1 个答案:

答案 0 :(得分:2)

也许最快的解决方案是增加Mid的偏移量以超过该时间段:

result = Mid(String.value, InStr(1, String.value, ".") + 1, 1)

然后检查result是否为数字。


一个更强大的选择是使用regular expressions。启用后,您可以执行以下操作:

Dim regex As New RegExp

regex.Pattern = "\.([0-9])"
If regex.test(String.value) Then
    theNumber = $1
End If