Option Explicit' 主程序:猜数字游戏Sub GuessNumber() Dim secretNumber As Integer ' 要猜的随机数 Dim guess As Variant ' 用户输入(可能是数字或空) Dim guessCount As Integer ' 猜测次数 Dim userGuess As Integer ' 转换后的数字猜测 Dim playAgain As VbMsgBoxResult ' 是否再玩一次 ' 初始化随机数生成器(确保每次运行随机数不同) Randomize Do ' 生成 1 到 100 之间的随机整数 secretNumber = Int((100 * Rnd) + 1) guessCount = 0 ' 提示游戏开始 MsgBox "我已经想好了一个 1 到 100 之间的整数,开始猜吧!", vbInformation, "猜数字游戏" Do ' 获取用户猜测 guess = InputBox("请输入你的猜测(1-100):", "猜数字", "") ' 如果用户点击取消或输入为空,则退出游戏 If guess = "" Then If MsgBox("真的要退出游戏吗?", vbYesNo + vbQuestion, "确认退出") = vbYes Then Exit Sub Else ' 继续游戏,重新获取输入 GoTo ContinueLoop End If End If ' 检查输入是否为数字且在范围内 If IsNumeric(guess) Then userGuess = CInt(guess) If userGuess < 1 Or userGuess > 100 Then MsgBox "请输入 1 到 100 之间的数字!", vbExclamation, "无效输入" GoTo ContinueLoop End If Else MsgBox "请输入有效的数字!", vbExclamation, "无效输入" GoTo ContinueLoop End If ' 有效猜测,计数加一 guessCount = guessCount + 1 ' 比较猜测与秘密数字 If userGuess < secretNumber Then MsgBox "猜小了,再大一点!", vbInformation, "提示" ElseIf userGuess > secretNumber Then MsgBox "猜大了,再小一点!", vbInformation, "提示" Else ' 猜对了 MsgBox "恭喜你猜对了!数字就是 " & secretNumber & "。" & vbCrLf & _ "你一共猜了 " & guessCount & " 次。", vbInformation, "胜利" Exit Do End IfContinueLoop: Loop ' 询问是否再玩一局 playAgain = MsgBox("是否再玩一局?", vbYesNo + vbQuestion, "再来一局") Loop While playAgain = vbYes MsgBox "感谢游玩,再见!", vbInformation, "结束"End Sub