首页 > 解决方案 > VBA MS Word - 如果字符串包含大于 9999 的数字

问题描述

我需要检查一个字符串以查看是否有任何长度超过或少于 4 个字符的数字的引用。

因此,这里有一些可能在字符串中的数字示例:

因此,它并不像选择数字并检查它是否大于 999 且小于或等于 9999 那样简单,因为数字可以以 0 开头。

这是可以存储在字符串中的数据示例

以下是一些返回有效和无效的示例

0324    TRUE
39234   FALSE
2393    TRUE
192     FALSE

由于分离数据没有固定的困境,我不确定如何将数字与字符串分离。

我最初的想法是只提取数字并用空格替换所有其他数字。然后将空间用作两难选择。如果字符串为空,则跳过它进行检查,但如果它包含一个值,则检查字符串的长度是否为 4 个字符。

欢迎所有解决方案或想法


标签: vbams-word

解决方案


Function CheckNumbers(ByVal s As String) As Boolean
    s = " " & s & " "
    CheckNumbers = Not s Like "*#####*" _
                   And Not s Like "*[!0-9]###[!0-9]*" _
                   And Not s Like "*[!0-9]##[!0-9]*" _
                   And Not s Like "*[!0-9]#[!0-9]*"
End Function

https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/like-operator


推荐阅读