在职场上,每个人都在演戏:手握鼠标,双眼紧盯屏幕,时不时用快捷键“Alt+Tab”来切换窗口,只为维持那份“认真工作”的假象。会议纪要还没开完,早八的精神早已出走;报表数据还在刷新,心里已经游走在游戏世界的边缘。但你以为摸鱼只能靠手机偷瞄?那你太小看我们打工人的智慧了。
真正的高手,早已将快乐隐藏进了 Excel 表格中。看似在做预算,其实在通关 2048;貌似在写月报,实则在翻牌猜图;明面上是表格核对,实际上在操控贪吃蛇狂吃能量豆。这一切,都在格子间悄然发生,领导路过只会点头称赞:“不错,数据做得真快。”
这不是办公软件,这是隐形主机;这不是游戏外挂,这是技术的浪漫。你甚至可以正大光明地说一句:“我在练 VBA 命令。”听起来高深莫测,实际上你在愉快摸鱼。从此不再担心屏幕投影,不再担心被老板盯梢。
接下来就给大家介绍一个非常简单的,在Excel里编辑的翻牌小游戏。
首先我们建立一个空的Excel文档,名字自己怎么起都行。然后进入Excel里面,找到开发工具,打开Visual Basic
如果你的Excel顶部没有找到开发工具,按接下来的操作找出,左上点击文件,如下图所示,点击更多
在右侧主选项卡勾选开发工具点击确定后就有了。如下图所示
打开Visual Basic之后将以下代码粘贴到VBAproject里面的ThisWorkbook,ThisWorkbook双击就可以打开。如下图所示
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怎么办,像下面这样操作就可以了,打开视图,找到工程资源管理器,点击就会出现
然后点击顶部插入,选择模块。把下面代码粘贴到模块中
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里进行翻牌游戏的创作内容了,摸鱼虽爽,可不要天天摸哦!