gpt4 book ai didi

excel - 进入无限循环

转载 作者:行者123 更新时间:2023-12-03 00:06:01 24 4
gpt4 key购买 nike

我是 vba 新手,所以我从我找到的示例和类似的东西开始。

现在我正在尝试做一个我在互联网上找到的例子,它是关于一个你必须猜测随机数的游戏。

我的游戏基于 3 列和 2 个按钮。

在第一列“N° introducido”中,我希望显示用户在输入框中输入的数字,

在第二列“Situación”中,我希望程序告诉用户随机数是否大于、小于或等于他引入的数字

第三列“Intentos”必须显示用户所需的尝试次数。

当我按下“Jugar”按钮时,这一切一定会发生,但这会进入无限循环,我什至评论了代码块以知道问题出在哪里,但我找不到它。最奇怪的是我使用的代码与示例中的代码相同。

image

这是我的代码:

Private Sub CommandButton2_Click()

Dim aleatorio, minum, fila As Integer

aleatorio = Math.Round(Math.Rnd * 100)
Debug.Print aleatorio

While aleatorio <> minum
minum = InputBox("Introduce un nº entre 1 y 100", "", , 150, 150)

' Range("c22").Offset(fila, 0).Value = minum
'
' If aleatorio > minum Then
' MsgBox "El nº es más alto"
' ElseIf aleatorio < minum Then
' MsgBox "El nº es más bajo"
' Else
' MsgBox "Correcto"
' End If
Wend
End Sub

我正在使用 debug.print 来了解随机数,并且我尝试输入出现的相同数字,但输入框从未关闭。

最佳答案

当您没有定义变量时,VBA 会尝试为您定义变量。因此,aleatorio = Math.Round(Math.Rnd * 100) 将作为 Variant/Single 变量传递,而 InputBox("Introduce un n° entre 1 y 100", "", , 150, 150) 将作为 Variant/String 变量传递,请参阅下面的“watches”:

enter image description here

因此,无限循环来自于将数值与字符串值进行比较,例如:71"71" ,它们永远不会相同。要更改它,您可以将 minim 变量转换为数值,例如:

minum = CDbl(InputBox("Introduce un nº entre 1 y 100", "", , 150, 150))

或者:

minum  = Application.InputBox("Introduce un nº entre 1 y 100", "", , 150, 150, Type:=2)

或者更好地声明变量:

Dim aleatorio As Double, minum As Double, fila as Double

关于excel - 进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790299/

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