news 2026/5/2 18:12:46

【Excel VBA基础编程】边玩边学:可视化程序开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Excel VBA基础编程】边玩边学:可视化程序开发

上期我们用While循环和If...Else条件判断的基础语法,合作编写了一款猜数字小游戏。现在我们来给它改个版,这次的重点是:学习用表单控件(比如按钮)让游戏界面更好操作,同时掌握 Range 对象操作单元格

效果展示

与上一期制作方式明显的区别是没有使用While循环语句,而是使用了事件驱动

在Excel工作表中增加了“开始游戏”、“提交猜测”两个表单按钮,并将这两个按钮关联到对应的VBA代码上,实现点击操作

工作表中玩猜数字游戏

通过以上视频可以看到,整个游戏过程都依赖于对工作表单元格的精确读写操作:通过读取玩家输入的猜测数字、游戏反馈结果来让游戏继续下去。同时,还将玩家猜测数字对应的单元格标识出不同的底色,方便区分

所以,改版游戏的过程,实质上是在练习如何用编程者的思维,去自动化你早已熟练掌握的手工操作。掌握了Range对象,就等于拿到了让Excel自动、批量、按规则处理数据的钥匙

代码及说明

参考代码如下:

Option Explicit ' 声明全局变量 Dim TargetNumber As Integer Dim Chances As Integer Dim NextGuessRow As Integer ' 用于获取下一次玩家输入的数字 '“开始游戏”按钮 Sub StartGame() ' 清空游戏区域内容 With ThisWorkbook.Worksheets("Sheet1") .Range("B5:C100").ClearContents .Range("B5:C100").Interior.ColorIndex = xlNone ' 清除颜色 End With ' 生成1-100的随机目标数字 Randomize TargetNumber = Int((100 - 1 + 1) * Rnd + 1) Chances = 0 NextGuessRow = 5 ' 从B5开始记录猜测数字 '代码调试使用 'ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = TargetNumber MsgBox "猜数字游戏已开始!从B5开始顺次输入你的猜测数字,范围是[0,100],然后点击‘提交猜测’按钮", vbInformation End Sub ' 关联到“提交猜测”按钮 Sub MakeMove() Dim ws As Worksheet Dim PlayerGuess As Integer Dim FeedbackCell As Range Dim GuessCell As Range Set ws = ThisWorkbook.Worksheets("Sheet1") ' 获取玩家在当前行输入的猜测数字 PlayerGuess = ws.Cells(NextGuessRow, "B").Value ' B列存放玩家猜测数字 ' 简单地验证输入:必须是大于等于1,小于等于100的整数 If Not IsNumeric(PlayerGuess) Then MsgBox "请在单元格B" & NextGuessRow & "中输入一个有效的数字!", vbExclamation Exit Sub End If If PlayerGuess < 1 Or PlayerGuess > 100 Then MsgBox "请输入一个1到100之间的数字!", vbExclamation Exit Sub End If ' 记录猜测次数 Chances = Chances + 1 ' 核心游戏逻辑 Set GuessCell = ws.Cells(NextGuessRow, "B") Set FeedbackCell = ws.Cells(NextGuessRow, "C") ' C列存放反馈文本 If PlayerGuess > TargetNumber Then FeedbackCell.Value = "猜大了!" GuessCell.Interior.Color = RGB(255, 150, 140) ' 浅红色背景 ElseIf PlayerGuess < TargetNumber Then FeedbackCell.Value = "猜小了!" GuessCell.Interior.Color = RGB(140, 140, 255) ' 浅蓝色背景 Else FeedbackCell.Value = "恭喜,猜对了!" GuessCell.Interior.Color = RGB(140, 255, 140) ' 浅绿色背景 MsgBox "太棒了!你猜对了!是数字 " & TargetNumber & "!" & vbCrLf & _ "本轮用了 " & Chances & " 次机会。", vbInformation Dim Response As VbMsgBoxResult '专门用于接收和判断 MsgBox 函数的返回值 Response = MsgBox("想再玩一次吗?", vbYesNo + vbQuestion) If Response = vbYes Then Call StartGame ' 重新开始游戏 End If Exit Sub End If ' 获取下一个猜测数字对应的行号 NextGuessRow = NextGuessRow + 1 If Chances >= 10 Then MsgBox "太遗憾了,10次机会用尽。游戏结束!目标数字是 " & TargetNumber & "。", vbExclamation Call StartGame ' 自动重新开始 End If End Sub

以上代码使用说明:

  • 打开你的.xlsm文件

  • 按下 Alt + F11 快捷键,打开VBA编辑器

  • 在菜单栏选择 “插入” -> “模块”,将上述代码粘贴到新模块中

  • 回到Excel中的Sheet1工作表,工作栏中依次选择【开发工具】【插入】【表单控件】,添加两个按钮,命名为“游戏开始”和“提交猜测”,并分别关联宏代码StartGame和MakeMove(添加按钮时会有提醒,选中宏代码关联即可)

以上操作步骤完成后,点击“游戏开始”后,我们就可以享受这款自己开发的小游戏了

结束语

你学会了吗?俗话说得好“授人以鱼不如授人以渔”,只有自己搞清楚了这些编码规则,掌握了方法,在以后遇到哪片数据需要处理,都能游刃有余地打造出最适合自己的工具。即便是用AI生成代码,也会是效率更高的那位。因为在潜移默化中就已经掌握了与AI沟通的能力与技巧

好了,今天的分享到此结束了,咱们下期继续!

本公众号一直在不间断地分享免费的编程案例和实用技巧。无论您是用来提升自动化办公效率还是想提升自我,请关注我的公众号,解锁更多的编程知识

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 1:10:36

BI的作用,体现在企业的哪些方面

对市场异常敏感的商业世界自然不会放过获取数字经济的机会&#xff0c;以国企和央企为首的众多企业开始进行数字化转型&#xff0c;通过信息化建设&#xff0c;部署商业智能BI来完成转型工作。为什么会出现BI有一点可能出乎很多人意料&#xff0c;虽然 BI 是因为信息化、数字化…

作者头像 李华
网站建设 2026/4/17 16:04:24

Yi-Coder-1.5B应用:Ollama部署+52种编程语言支持

Yi-Coder-1.5B应用&#xff1a;Ollama部署52种编程语言支持 有没有想过&#xff0c;把一个真正懂代码的AI助手装进你的笔记本&#xff0c;不联网、不上传、不依赖任何服务器&#xff0c;就能随时帮你写函数、修Bug、读文档、转语言&#xff1f;不是“能聊几句”的通用模型&…

作者头像 李华
网站建设 2026/5/2 17:20:37

一套万能通用的异步处理方案

前言 良好的系统设计必须要做到开闭原则&#xff0c;随着业务的不断迭代更新&#xff0c;核心代码也会被不断改动&#xff0c;出错的概率也会大大增加。但是大部分增加的功能都是在扩展原有的功能&#xff0c;既要保证性能又要保证质量&#xff0c;我们往往都会使用异步线程池…

作者头像 李华
网站建设 2026/5/1 12:47:11

AI供应链惊魂!OpenClaw 341个恶意技能,正在收割全球用户数据

当AI代理工具从“便捷辅助”升级为“日常刚需”&#xff0c;其生态供应链已成为黑产团伙的新猎场。近期OpenClaw平台爆发的ClawHavoc大规模投毒事件&#xff0c;341个恶意技能潜伏于官方市场&#xff0c;恶意占比超11.9%&#xff0c;刷新了AI插件生态供应链攻击的规模纪录。这不…

作者头像 李华
网站建设 2026/5/1 16:01:05

云计算如何助力企业实现安全高效的规模化发展!

云计算是企业实现安全高效规模化的核心引擎&#xff0c;它通过提供可扩展、灵活且智能的基础设施与服务&#xff0c;从根本上改变了企业增长的方式。以下是其关键作用的详细解析&#xff1a;一、实现“高效规模化”的核心能力弹性伸缩&#xff0c;告别资源瓶颈按需供应&#xf…

作者头像 李华
网站建设 2026/4/25 23:17:34

什么是机器学习?—— 用 “买西瓜” 讲透核心逻辑

什么是机器学习&#xff1f;—— 用 “买西瓜” 讲透核心逻辑 快速导读 难度&#xff1a;入门位置&#xff1a;第 1 篇读完可接&#xff1a;第 2 篇《机器学习基本术语大拆解 —— 用西瓜数据集逐个对应》 文章目录什么是机器学习&#xff1f;—— 用 “买西瓜” 讲透核心逻…

作者头像 李华