gpt4 book ai didi

excel - 在 VBA 中处理输入框中的非整数

转载 作者:行者123 更新时间:2023-12-01 11:40:26 25 4
gpt4 key购买 nike

我有一个名为“need”的变量,它被定义为一个整数。出现一个输入框并提示用户。如果他们输入一个整数,它会显示 Msgbox“Got your number”。如果我键入一个字符串,我会收到运行时错误“13”:类型不匹配。我想如果我只使用 Else 语句,它会说再试一次。它并没有这样做。我需要在 Else 语句中进行错误处理吗?如果是这样,这条线是什么?

Sub gadgetmanuf()

Dim need As Integer
'Dim rawneed As Single
'Dim rawavailable As Single


need = InputBox("How many gadgets are needed?", "Insert a number")

If TypeName(need) = "Integer" Then
MsgBox ("Got your number")
Else
MsgBox ("Try again")
End If

End Sub

最佳答案

使用类型为 1Application.InputBox 会强制用户输入数字(为文本、范围等提供自己的错误消息)。所以你需要处理的只是Cancel选项,即

下面的代码使用一个变体来处理这个问题,因为使用 CancelIntegerLong 给出 0 - 这可能是一个有效的条目。

Sub TaylorWalker()
redo:
vStr = Application.InputBox("How many gadgets are needed?", "Enter a number", , , , , , Type:=1)
If vStr = False Then GoTo redo
End Sub

更长的选项

测试输入的变量是否大于0

Sub EddieBetts()
Dim StrPrompt As String
Dim lngNum As Long

StrPrompt = "How many gadgets are needed?"
redo:
lngNum = Application.InputBox(StrPrompt, "Enter an integer number (numbers will be rounded)", , , , , , Type:=1)
If lngNum < 1 Then
StrPrompt = "How many gadgets are needed - this must be a postive integer"
GoTo redo
End If

MsgBox "User entered " & lngNum

End Sub

关于excel - 在 VBA 中处理输入框中的非整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com