辞旧迎新,用代码为办公室添一份年味儿
🎉 2026年的钟声即将敲响!在这个充满希望的时刻,除了看烟花、吃团圆饭,你有没有想过——用Excel来一场电子鞭炮?不需要火药,不制造垃圾,只要一段VBA代码,就能让单元格“炸”出红橙黄的光芒,配合系统蜂鸣的“噼啪”声,瞬间点燃节日气氛。无论是发给同事、朋友,还是自己图个乐子,都足够惊艳!
今天,我们就手把手教你实现这个“放鞭炮”效果,全程无坑,复制代码即可运行。让我们一起,用最“硬核”的方式迎接2026!

运行宏后,你可以任意选择一个区域(比如A1:Z50)。接着,单元格会像鞭炮一样随机闪烁出红、橙、黄三种颜色,并伴随连续的蜂鸣声,持续几十轮后自动恢复原样。效果类似下图(建议脑补动态画面 😄):
初始:空白表格第1轮:随机点亮10个红色单元格 → Beep第2轮:上一批恢复,另10个橙色单元格点亮 → Beep……最后:所有单元格恢复原色注意:蜂鸣声由电脑扬声器发出,请确保音量已打开。
操作系统:Windows(代码调用了Windows API Sleep)
软件:Microsoft Excel(任何支持VBA的版本均可)
技能:会复制粘贴即可
按 Alt + F11 打开VBA窗口。
在左侧“工程资源管理器”中,右键点击任意一个工作表或“VBAProject”,选择 插入 → 模块。
双击新插入的模块,将下面的完整代码复制进去:
Option Explicit' 声明 Sleep API(用于毫秒级延时)#If VBA7 ThenPublic Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)#ElsePublic Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)#End IfSub Firecracker()Dim rng As RangeDim i As Long, j As LongDim totalShots As LongDim shotCount As LongDim cellsPerShot As IntegerDim cellRows As Long, cellCols As LongDim origColors() As VariantDim lastAffected As RangeDim currentAffected As RangeDim rowIndex As Long, colIndex As LongDim randRow As Long, randCol As LongDim k As IntegerDim color As LongDim cell As Range' 让用户选择燃放区域On Error Resume NextSet rng = Sheet1.Range(" A1: ak34")On Error GoTo 0If rng Is Nothing Then Exit Sub' 初始化随机数生成器Randomize' 保存区域原始颜色到数组cellRows = rng.Rows.CountcellCols = rng.Columns.CountReDim origColors(1 To cellRows, 1 To cellCols)For i = 1 To cellRowsFor j = 1 To cellColsorigColors(i, j) = rng.Cells(i, j).Interior.colorNext jNext i' 关闭屏幕更新,提高执行速度(之后会按需刷新)Application.ScreenUpdating = FalsetotalShots = 40 ' 总燃放次数Set lastAffected = Nothing' 设置错误处理,确保中断时能恢复颜色和屏幕更新On Error GoTo CleanupFor shotCount = 1 To totalShots' 恢复上一批单元格的原始颜色If Not lastAffected Is Nothing ThenFor Each cell In lastAffected.CellsrowIndex = cell.Row - rng.Row + 1colIndex = cell.Column - rng.Column + 1cell.Interior.color = origColors(rowIndex, colIndex)Next cellEnd If' 随机决定本次燃放多少个单元格(5~15 个)cellsPerShot = Int((15 - 5 + 1) * Rnd + 5)Set currentAffected = NothingFor k = 1 To cellsPerShot' 随机选取单元格(允许重复,Union 会自动合并)randRow = Int((cellRows) * Rnd + 1)randCol = Int((cellCols) * Rnd + 1)Set cell = rng.Cells(randRow, randCol)If currentAffected Is Nothing ThenSet currentAffected = cellElseSet currentAffected = Union(currentAffected, cell)End IfNext k' 为本次燃放的单元格设置随机暖色For Each cell In currentAffected.CellsSelect Case Int(3 * Rnd)Case 0: color = RGB(255, 0, 0) ' 红Case 1: color = RGB(255, 165, 0) ' 橙Case 2: color = RGB(255, 255, 0) ' 黄End Selectcell.Interior.color = colorNext cell' 发出蜂鸣声(模拟鞭炮声)Beep' 延时约 0.1 秒(使用 Sleep 使效果更明显)Sleep 100 ' 100 毫秒' 强制刷新屏幕,显示当前变化Application.ScreenUpdating = TrueDoEventsApplication.ScreenUpdating = False' 记录本次燃放的单元格,供下一轮恢复Set lastAffected = currentAffectedNext shotCountCleanup:' 恢复所有单元格的原始颜色If Not lastAffected Is Nothing ThenFor Each cell In lastAffected.CellsrowIndex = cell.Row - rng.Row + 1colIndex = cell.Column - rng.Column + 1cell.Interior.color = origColors(rowIndex, colIndex)Next cellEnd If' 确保整个区域全部恢复(以防遗漏)For i = 1 To cellRowsFor j = 1 To cellColsrng.Cells(i, j).Interior.color = origColors(i, j)Next jNext iApplication.ScreenUpdating = TrueIf Err.Number = 0 ThenElseMsgBox "宏已被中断,颜色已恢复。"End IfEnd Sub
3️⃣ 运行宏
返回Excel界面,按 Alt + F8 打开“宏”对话框。
选中 Firecracker,点击 执行。
在弹出的对话框中选择要放鞭炮的区域(例如 A1:Z50,可以选大一点,但建议不超过1万个单元格)。
点击确定,然后……坐等鞭炮炸裂!
想让鞭炮更符合你的口味?修改下面几个参数即可:
总燃放次数:找到 totalShots = 40,把40改成你想要的数字(比如60,时间更长)。
每次燃放单元格数量范围:找到 cellsPerShot = Int((15 - 5 + 1) * Rnd + 5),修改15(最大值)和5(最小值),例如改为Int((20 - 8 + 1) * Rnd + 8)表示8~20个。
颜色:在 Select Case 里可以增加更多RGB值,例如 RGB(255, 128, 0) 深橙色,或 RGB(255, 200, 0) 亮黄色。
延时长短:Sleep 100 表示100毫秒,改大则爆炸间隔更长,改小则更急促。
保存工作簿:运行前最好先保存文件,以防意外修改了单元格底色无法恢复(虽然代码会恢复,但多一手准备总没错)。
中断方法:如果想中途停止,按 Esc 或 Ctrl + Break,代码会自动恢复所有单元格颜色,并弹窗提示。
区域大小:所选区域过大(如几万单元格)可能导致运行稍慢,一般几百到几千个单元格完全没问题。
声音问题:如果电脑没有蜂鸣器(Beep无声),可以尝试将 Beep 替换为 Application.Speech.Speak "啪",但需确保系统已安装语音库。
零点倒计时:将 totalShots 设为60,每次延时设为1000毫秒(1秒),配上倒计时文字,在零点最后一刻运行,让“鞭炮”与新年钟声同步。
制作贺卡:在Excel里先输入“2026新年快乐”等文字,然后选择文字所在区域运行鞭炮,文字会在闪烁中显现,效果独特。
多人互动:把文件发到工作群,让大家一起选区域放鞭炮,比比谁的“鞭炮”更响(其实都是蜂鸣声)。
用一段小小的代码,为平凡的工作表注入节日的活力。无论你是Excel高手,还是刚刚接触VBA的萌新,这份“电子鞭炮”都能让你在跨年夜收获一份独特的乐趣。
愿你在2026年:事业如骏马奔腾,生活似鞭炮红火! 快去试试吧,顺便发给朋友们,让他们也感受一下来自Excel的硬核祝福!
🎆 Happy New Year 2026! 🎆