我要判断一个长整型变量c 是否在a(“EE20D8DB0000”16进制) 和 b(“EE20D8DBFFFF”16进制) 范围内,
我写的代码如下:    Dim a As Long
    Dim b As Long
    Dim c As Long
    
    a = &HEE20D8DB0000
    b = &HEE20D8DBFFFF
    
    c = &HEE20D8DB0001
    
    If c >= a And c <= b Then
        MsgBox "在范围内!"
    Else
        MsgBox "不在范围内!"
    End If
但是我发现赋给变量a和b,c的值超出范围,无法用上述程序判断c是否在a和b的范围内。
请求大家能帮我解决这个问题,万分感谢!!!

解决方案 »

  1.   

    楼主的方法明显是不行的,早就超过了LONG型数据的范围,你自己可以写一个十六进制转十进制的函数来实现
      

  2.   

    AprilSong(X) 和 aohan(景升) 怎么实现啊?能不能写出你们的代码啊?
    小虾米谢谢你们了!
      

  3.   

    不知道你具体是要做什么……
    大概就是这么个意思~Private Sub Form_Click()
        Dim a As String
        Dim b As String
        Dim c As String
        
        a = "&HEE20D8DB0000"
        b = "&HEE20D8DBFFFF"
        c = "&HEE20D8DB0001"
        
        If c >= a And c <= b Then
            MsgBox "在范围内!"
        Else
            MsgBox "不在范围内!"
        End If
    End Sub
      

  4.   

    Private Sub Command1_Click()
    Dim a As String
        Dim b As String
        Dim c As String
        
        a = "EE20D8DB0000"
        b = "EE20D8DBFFFF"
        
        c = "EE20D8DB0001"
        
        If c >= a And c <= b Then
            MsgBox "在范围内!"
        Else
            MsgBox "不在范围内!"
        End If
    End Sub
      

  5.   

    northwolves(狼行天下) :
    你的上述代码是可以判断c的值(EE20D8DB0001)在a(EE20D8DB0000)和b(EE20D8DBFFFF)之间的,
    但是我又写了如下的代码就发现是不对的,因为c的值(EE20D8DB00TT)根本就不是一个十六进制数,但程序判断它是在a和b之间的Private Sub Command1_Click()
    Dim a As String
        Dim b As String
        Dim c As String
        
        a = "EE20D8DB0000"
        b = "EE20D8DBFFFF"
        
        c = "EE20D8DB00TT"
        
        If c >= a And c <= b Then
            MsgBox "在范围内!"
        Else
            MsgBox "不在范围内!"
        End If
    End Sub
      

  6.   

    简单的说我要判断一个十六进制数值 EE20D8DB0001 是否在 EE20D8DB0000 和 EE20D8DBFFFF 之间,
    用程序怎么实现。
      

  7.   

    你可以转换成DOUBLE型:
    Private Sub Command1_Click()
        MsgBox HEXTODEC("EE20D8DB0000")
    End Sub
    Function HEXTODEC(ByVal X As String) As Double
    Dim BENUM As Boolean
    BENUM = True
    If Not (IsNumeric("&h" & Left(X, 6)) And IsNumeric("&h" & Right(X, 6))) Then BENUM = False
    If BENUM = True Then HEXTODEC = CDbl("&h" & Left(X, 6)) * CDbl(&H1000000) + CDbl("&h" & Right(X, 6))
    End Function你是否想对获得的MAC 进行运算?可以直接判断是否合法的十六进制数,再格式化成等长的字符串(前加0),比较字符串的大小
      

  8.   

    谢谢 northwolves(狼行天下) 的大力支持,真的谢谢你,你的方法是可行的
      

  9.   

    northwolves(狼行天下)
    一看你就是高手,我就是进行MAC运算的