首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >inputBox Excel整数问题

inputBox Excel整数问题
EN

Stack Overflow用户
提问于 2015-05-23 22:23:47
回答 1查看 3.7K关注 0票数 2

我是VBA的新手,我正在尝试创建一个宏,该宏从inputBox接受0到1000之间的数字,并将其转换为十六进制。很好,这是可行的,但我正在努力保持程序接受这个范围(0-1000)。这就是发生的事情:

  • 如果我输入-1,它会抛出一个错误;
  • 如果我输入-1001,它会抛出一个FFFFFFFC17;
  • 如果我输入任何高于1000的值,它就不会抛出一个MsgBox (我目前还不熟悉在excel上引起错误)。

我先做了这样的事:

代码语言:javascript
复制
Sub DecToHex()
    Dim inputDec As Integer
    Dim outputHex As String

    inputDec = InputBox("Decimal?")

    If inputDec <= 1000 And inputDec >= 0 Then
        outputHex = Application.WorksheetFunction.Dec2Hex(inputDec)
        MsgBox ("Hex: " + outputHex)
    Else
        MsgBox ("Error! Please define decimal. It must be larger than zero and less than 1001")
        inputDec = InputBox("Decimal?")
        outputHex = Application.WorksheetFunction.Dec2Hex(inputDec)
        MsgBox ("Hex: " + outputHex)
    End If

End Sub

但是,我认为inputBox给我输入作为字符串,所以也许我应该接受值作为字符串,所以我改变了:

代码语言:javascript
复制
Dim inputDec As Integer 
'Changed to
Dim inputDec As String 

对变量的控制仍然很差。它接受- 1200,也是1200 )。你能指出我做错了什么吗?也许是因为工作表的作用,我读得不好。我知道这是新手的错误,但是了解如何从inputBox控制这些输入变量对我来说很重要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-23 22:31:34

  1. 您需要将inputDec声明为Variant
  2. 您需要处理Cancel按钮
  3. 您需要将代码放入循环中,以便当用户输入无效数字时,输入框将再次弹出。
  4. 您需要将Application.InputBoxType:=1结合使用,这样才能接受数字。

尝尝这个

代码语言:javascript
复制
Sub DecToHex()
    Dim inputDec As Variant
    Dim outputHex As String

    Do
        inputDec = Application.InputBox("Decimal?", Type:=1)

        '~~> Handle Cancel
        If inputDec = "False" Then Exit Do

        If inputDec <= 1000 And inputDec >= 0 Then
            outputHex = Application.WorksheetFunction.Dec2Hex(inputDec)
            MsgBox ("Hex: " + outputHex)
            Exit Do '<~~ Exit the loop
        Else
            MsgBox ("Error! Please define decimal. It must be larger than zero and less than 1001")
        End If
    Loop
End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30418155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档