首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【摸鱼也要有技术含量】用 Excel 打造翻牌记忆小游戏,老板看了都说我在加班!

【摸鱼也要有技术含量】用 Excel 打造翻牌记忆小游戏,老板看了都说我在加班!

作者头像
找Bug
发布2025-07-27 12:31:20
发布2025-07-27 12:31:20
35300
代码可运行
举报
文章被收录于专栏:你的Bug我做主你的Bug我做主
运行总次数:0
代码可运行

在职场上,每个人都在演戏:手握鼠标,双眼紧盯屏幕,时不时用快捷键“Alt+Tab”来切换窗口,只为维持那份“认真工作”的假象。会议纪要还没开完,早八的精神早已出走;报表数据还在刷新,心里已经游走在游戏世界的边缘。但你以为摸鱼只能靠手机偷瞄?那你太小看我们打工人的智慧了。

真正的高手,早已将快乐隐藏进了 Excel 表格中。看似在做预算,其实在通关 2048;貌似在写月报,实则在翻牌猜图;明面上是表格核对,实际上在操控贪吃蛇狂吃能量豆。这一切,都在格子间悄然发生,领导路过只会点头称赞:“不错,数据做得真快。”

这不是办公软件,这是隐形主机;这不是游戏外挂,这是技术的浪漫。你甚至可以正大光明地说一句:“我在练 VBA 命令。”听起来高深莫测,实际上你在愉快摸鱼。从此不再担心屏幕投影,不再担心被老板盯梢。

接下来就给大家介绍一个非常简单的,在Excel里编辑的翻牌小游戏。

首先我们建立一个空的Excel文档,名字自己怎么起都行。然后进入Excel里面,找到开发工具,打开Visual Basic

如果你的Excel顶部没有找到开发工具,按接下来的操作找出,左上点击文件,如下图所示,点击更多

在右侧主选项卡勾选开发工具点击确定后就有了。如下图所示

打开Visual Basic之后将以下代码粘贴到VBAproject里面的ThisWorkbook,ThisWorkbook双击就可以打开。如下图所示

代码语言:javascript
代码运行次数:0
运行
复制
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("A1:D4")) Is Nothing Then
        If Target.Count = 1 Then
            ShowCard Target
        End If
    End If
End Sub

如果没有VBAproject怎么办,像下面这样操作就可以了,打开视图,找到工程资源管理器,点击就会出现

然后点击顶部插入,选择模块。把下面代码粘贴到模块

代码语言:javascript
代码运行次数:0
运行
复制
Dim CardValues(1 To 4, 1 To 4) As String
Dim FirstCell As Range
Dim GameStarted As Boolean
Sub StartGame()
    Dim symbols As Variant
    Dim i As Integer, j As Integer
    Dim randIndex As Integer, temp As String
    Dim k As Integer
    symbols = Array("A", "B", "C", "D", "E", "F", "G", "H", "A", "B", "C", "D", "E", "F", "G", "H")
    ' 打乱顺序
    For i = UBound(symbols) To 1 Step -1
        randIndex = Int(Rnd() * (i + 1))
        temp = symbols(i)
        symbols(i) = symbols(randIndex)
        symbols(randIndex) = temp
    Next i
    ' 初始化卡片值
    k = 0
    For i = 1 To 4
        For j = 1 To 4
            k = k + 1
            CardValues(i, j) = symbols(k - 1)
            With Cells(i, j)
                .Value = "?"
                .Font.Size = 20
                .Interior.Color = RGB(173, 216, 230) ' 淡蓝
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
        Next j
    Next i
    Set FirstCell = Nothing
    GameStarted = True
    MsgBox "翻牌记忆游戏开始!点击两个格子配对吧~"
End Sub
Sub ShowCard(Target As Range)
    If Not GameStarted Then Exit Sub
    Dim r As Integer, c As Integer
    r = Target.Row
    c = Target.Column
    ' 防止重复点击已经匹配的
    If Target.Value <> "?" Then Exit Sub
    ' 显示当前值
    Target.Value = CardValues(r, c)
    If FirstCell Is Nothing Then
        Set FirstCell = Target
    Else
        ' 第二次点击
        DoEvents
        Application.Wait Now + TimeValue("00:00:01")
        If FirstCell.Value = Target.Value Then
            ' 配对成功
            FirstCell.Interior.Color = RGB(144, 238, 144) ' 绿色
            Target.Interior.Color = RGB(144, 238, 144)
        Else
            ' 翻回去
            FirstCell.Value = "?"
            Target.Value = "?"
        End If
        Set FirstCell = Nothing
        ' 检查是否全部完成
        If AllMatched Then
            MsgBox "你赢啦!"
            GameStarted = False
        End If
    End If
End Sub
Function AllMatched() As Boolean
    Dim i As Integer, j As Integer
    For i = 1 To 4
        For j = 1 To 4
            If Cells(i, j).Value = "?" Then
                AllMatched = False
                Exit Function
            End If
        Next j
    Next i
    AllMatched = True
End Function

然后点击保存ctrl+s,如果出现任何弹窗提示选择保存即可

接下来就是开始玩了,回到开始的开发工具,点击

出现下面的弹窗,选中StartGame,点击执行

点击确定开始摸鱼吧

注意如果复制的代码是乱码的话,点击这里链接获取源码

https://pan.baidu.com/s/1Cr_PN0hk-h-CV-gp8PfqTw?pwd=nhkd 提取码: nhkd

在这个处处高压的职场生态中,摸鱼从未如此体面。你不是在浪费时间,而是在数据海洋中精准切换注意力;你不是在玩游戏,而是在 Excel 的规则里磨练记忆、训练专注。你躲过了老板的目光,赢得了内心的自由

所以,下次当你看见同事在认真盯着 Excel 表格时,很有可能在摸鱼哦!以上就是简单的Excel里进行翻牌游戏的创作内容了,摸鱼虽爽,可不要天天摸哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 找Bug 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档