我想在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)
你们能告诉我最好的方法是什么吗?
修改
样本数据和结果:
答案 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