我写了一个函数如下:
功能是把一个十六进制的字符串转换为定长wei的是十进制字符串
Function HtoN(ByVal csh As String, ByVal wei As Long) As String
Dim n As Long
Dim aa As String
aa = "&H" & csh
n = Val(aa)
Dim bb As String
bb = n
If wei > 2 Then
wei = wei - 1   If Len(bb) < wei Then
    Dim cc As Long
   For cc = 0 To wei - Len(bb)
      bb = "0" & bb
   Next cc
   End If
ElseIf wei = 2 Then
   bb = "0" & bbEnd If
HtoN = bbEnd Function
问题是当我输入的string为"00008C8C"的时候返回的是负值“00-29556”
请问该怎么样该呢???
在线等请。

解决方案 »

  1.   

    ?val("&h00008C8C")
    -29556 
      

  2.   

    Debug.Print CLng("&H" & "8c8c")
      

  3.   

    val("&H8C8C&")是正数
    Private Sub Command1_Click()
        Dim s As String
        Dim wei As Long
        
        wei = 6
        s = Format(CLng("&H8C8C"), String(wei, "0"))
        Print s
    End Sub
      

  4.   

    val("&H00008C8C&")
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  5.   

    val(&H00018C8C) - val(&H00010000)