gpt4 book ai didi

vba - 直到循环输入框无限循环

转载 作者:行者123 更新时间:2023-12-04 21:37:32 25 4
gpt4 key购买 nike

我正在创建一个概率宏,用户可以在其中输入纸牌游戏中的玩家人数。如果我输入字符串(例如 Joe )、非整数(例如 15.67 )或小于 0 的整数(例如 -25 ),则 InputBox 应该循环。但是,大于 0 的整数应该终止循环。 (无论用户输入如何,我都必须强制终止 Excel 以停止 InputBox。)

一旦输入大于 0 的整数,我希望 InputBox 关闭/退出 Sub。我在这里做错了什么?

Sub GenerateCards()
Players = InputBox("How many players? Please enter an integer.")
Do Until TypeName(Players) = "Integer" And Players > 0 ' why does this loop even if both conditions are met (ex, Players=5?)
Players = InputBox("How many players? Please enter an integer.")
Loop
End Sub

最佳答案

InputBox()总是返回一个字符串,所以 TypeName()将始终返回 "String" .

但是您可以测试返回的字符串是否为整数。首先,您可以使用IsNumeric()测试字符串是否为数值。然后,您可以安全地将其转换为 DoubleInteger .事实上,您可以将其转换为两者,然后将它们相互比较。如果它们相同,则您有一个整数值。例如:

Sub GenerateCards()

Do
Players = InputBox("How many players? Please enter an integer.")

If IsNumeric(Players) Then
If CDbl(Players) = CLng(Players) And Players > 0 Then
' Integer > 0 entered. Exit loop...
Exit Do
End If
End If
Loop

End Sub

关于vba - 直到循环输入框无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999974/

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