gpt4 book ai didi

excel - 在 vba msgbox 中不使用 goto 循环的方法

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

我正在尝试找到一种方法来避免在 VBA 中使用 GoTo 循环,因为我知道它们可能会导致严重的困惑和问题。我有一个用户InputBox,用户在其中定义一个变量,当前在if语句上有3个选项,if = Y ElseIf = N和else GoTo Start。

但是,这对于用户错误输入变量(即 Y# 等)的情况非常有用,但当用户想要关闭输入框(即单击取消或十字)时,我当前遇到问题。

所以我想知道是否有更聪明的解决方案,或者我是否遇到了这个问题?

我的代码如下,这只是一个测试集,用于测试我添加到主代码中的这个新功能。

Sub MsgBox_Test ()

Dim TestVariable As String

VariableEntrey: TestVariable = InputBox(" Y or N")
If TestVariable = "Y" Or TestVariable = "y" Then
MsgBox ("Yeyy")
ElseIf TestVariable = "N" Or TestVariable = "n" Then
MsgBox ("Awww")
Else: GoTo VariableEntrey
End If

End Sub

感谢您提供的任何帮助

最佳答案

您可以尝试使用 Do...Loop Until 构造,该构造会不断重复,直到获得可接受的答案。例如:

Sub GetAnswer()

Dim strAnswer As String

Do
strAnswer = InputBox("Y or N")
Loop Until strAnswer Like "[YyNn]"

MsgBox "Thanks for your answer of: " & strAnswer

End Sub

请参阅 Like 上的文档运算符,以避免必须单独检查 yYnN

关于excel - 在 vba msgbox 中不使用 goto 循环的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47691661/

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