如何知道字符中有数字

解决方案 »

  1.   

      Dim a As String, c As Boolean
      a = "dddfg2eeqq"
      c = a Like "*[0-9]*"
      Debug.Print a, c
      

  2.   

    for i=0 to 9
    if instr(STR,i) then msgbox "有数字!":exit for
    next
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim bolHaveNum As Boolean
        Dim intP As Integer
        Dim strP As String
        strP = "adjflksd123dfjlsd"
        bolHaveNum = False
        For intP = 0 To 9
            If InStr(1, strP, CStr(intP), vbTextCompare) <> 0 Then
                bolHaveNum = True
                Exit For
            End If
        Next intP
        If bolHaveNum = True Then
            Debug.Print "含有数字"
        End If
    End Sub
      

  4.   

    从第一个字符开始用isnumeric函数判断
      

  5.   

    其实有许多办法,这是我的办法:Byte的值从0-255;数字的ANSI编码在48-57;字符串可以直接和Byte数组赋值。
    那么,字符串转为Byte数组之后,每个字节的值在0-255之间。
    假如某个Byte值在48-57之间,就表示有数字。
    数组tCd()有256个元素,从0-255,表示Byte值0-255每个值是否“有效”。
    为了达到测试数字的目的,定义它的48-57范围的元素为“有效”。
    字符串的Byte数组是tBt(),tCd(tBt(i))就表示tBt()的第i个字节是否“有效”(为数字)
    从tCd(tBt(0))开始循环,查找tCd(tBt(i))是否为“真”。假如遇到任何一个为“真”,立即结束循环。这种方法的好处是特别灵活,而且迅速。只要是这种查表可以解决的情况,你可以定义任意的编码范围。比如:是否带数字和小写字母;是否带数字和ABCDEF的16进制字母;是否有汉字存在……等等。这些用途的区别无非就是tCd()定义不同。
    Function NumInStr(ByRef pStr As String) As Boolean
      Dim tOutBool As Boolean
      Dim tBt() As Byte
      Dim tCd() As Boolean
      Dim tBe As Long
      Dim tI As Long
      
      tBt() = pStr
      
      ReDim tCd(255)
        
      For tI = 48 To 57
        tCd(tI) = True
      Next
      
      tBe = UBound(tBt())
      
      For tI = 0 To tBe
        tOutBool = tCd(tBt(tI))
        If tOutBool Then Exit For
      Next
      
      NumInStr = tOutBool
    End Function
      

  6.   


    我的程序里,表和逻辑运算符比较多一些。查表的目的不同。有时候是为了加速(比如极坐标转换),有时候是为了简化问题(比如需要很长的Select Case或If Then来解决的问题)。有些程序,比如我上面提供那个。假如表是存在于ini之类外部文件的,稍微把表改改就是另外一个用途。
      

  7.   


    查表还算正常点的,最气人的是这种代码:老师:请同学们写一个判断X为奇数、偶数的程序。
    仙妹:Debug.print Chr((CBool(X Mod 2) And 298) - 14916) & "数"
      

  8.   


    “包搞定”太形象了! 小仙妹在 15F 写的代码确实新潮~~~~~~~~
    学习了........
    不过,我觉得把 X Mod 2 改成 X And 1 更好。
      

  9.   

    老师:请同学们写一个判断X为奇数、偶数的程序。 
    仙妹:Debug.print Chr((CBool(X Mod 2) And 298) - 14916) & "数" 饿滴神~~~~~~~~
      

  10.   

    1楼的代码还可再简单些:
    "dddfg2eeqq" Like "*#*"
      

  11.   

    Characters in pattern Matches in string 
    ? Any single character. 
    * Zero or more characters. 
    # Any single digit (0–9). 
    [charlist] Any single character in charlist. 
    [!charlist] Any single character not in charlist. 所以:Debug.print "dddfg2eeqq" Like "*#*" 貌似就可以了