Private Sub Command1_Click()
 Dim mm As Integer, nn As Integer
    mm = InputBox("请输入一个十进制整数:")
  nn = InputBox("输入将要转换成什么进制的数:")
 Print "十进制整数" & mm; "转换成" & nn & "进制,结果为:" & dectran(mm, nn)
End Sub
Public Function dectran(ByVal m As Integer, ByVal n As Integer) As Double
  Dim str As String
  Dim r As Integer
 Do While m <> 0
  r = m Mod n
  str = r & str
  m = m \ n
 Loop
  decrtan = CDbl(str)
End Function
程序的目的是,实现数制的转换...为什么不能正确运行,请高手帮忙改错。。纠正

解决方案 »

  1.   

    decrtan = CDbl(str)
    应改为
    dectran = CDbl(str)
      

  2.   

    参考我的例子
    http://download.csdn.net/source/1212613
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim mm As Integer, nn As Integer
        mm = InputBox("请输入一个十进制整数:")
        nn = InputBox("输入将要转换成什么进制的数:")
        Print "十进制整数" & mm; "转换成" & nn & "进制,结果为:" & dectran(mm, nn)
    End SubPublic Function dectran(ByVal m As Integer, ByVal n As Integer) As Double
        Dim str As String
        Dim r As Integer
        Do While m <> 0
            r = m Mod n
            str = r & str
            m = m \ n
        Loop
        dectran = CDbl(str)
        If Val(n) = 16 Then
            dectran = Hex(m)
        End If
    End Function
      

  4.   

    decrtan = CDbl(str)
    应改为
    dectran = CDbl(str)
      

  5.   

    编程最好养成良好的先声明在使用的习惯,在每个模块的第一行添加:option explicit
      

  6.   

     str = r & str 这行代码只是字符串的连接,照理说输出的字符串 应该是和正确的进制数反过的来的,怎么这里不用加个反转的函数?