国内外网站,大连建设工程交易中心,跨境电商网站如何做推广,温州网站建设公司公司哪家好前段时间一个朋友帮那小孩解数独游戏#xff0c;让我帮解#xff0c;我看他用电子表格做#xff0c;只能显示#xff0c;不能显示重复#xff0c;也没有协助解题功能#xff0c;于是我说帮你做个电子表格版的“解题助手”吧#xff0c;不能直接解题#xff0c;但该有的…前段时间一个朋友帮那小孩解数独游戏让我帮解我看他用电子表格做只能显示不能显示重复也没有协助解题功能于是我说帮你做个电子表格版的“解题助手”吧不能直接解题但该有的辅助功能都有。于是花了两天时间用excel的宏功能做了一个分享出来有爱好者可下载玩玩。
主要功能
1、编辑数独题目辅助解题。
2、内置100道数独题目跟其他数独游戏一样。
下面简单介绍一下这个小游戏。
界面说明 功能和功能与市场上一般的数独游戏没什么差别只是多了一个自定义题目的功能这个功能很多游戏都没有。内置题目没有答案所以不会告诉解法对不对其实也能做懒的做。下面把这个游戏功能和实现方法简单讲一下。
题目显示区这个没什么好说的就是题目显示和解题操作区。
编辑操作区由于要实现自定义题目所以要有编辑功能但在编辑的时候所有填写的数字是黑色解题的时候显示红色因为没有答案所以必须区分哪些是原内容哪些是你填写的内容。所以编辑的时候要点击“编辑解锁”才可以编辑。题目编辑完成后点击“编辑锁定”已填写的内容为黑色且不可修改可填写区域字体为红色。“重玩”就是把所有解题填写的内容清空已输入的题目不动。“清空”就是把所有内容全部删除并进入题目编辑状态。
功能实现
锁定编辑就是利用宏实现了电子表格的锁定功能让编辑题目已填写的内容不可修改。 代码
Sub 对工作表保护()Dim rng As RangeDim cell As RangeSheets(1).UnprotectSheets(1).Cells.Locked FalseFor Each cell In Range(B2:J10)If cell.value And cell.Font.Color vbBlack Thencell.Locked TrueElsecell.Font.Color vbRedEnd IfNextRange(k11:l11).Locked TrueRange(b11:j11).Font.Color vbRedRange(b11:o11).Locked TrueSheets(1).Protect
End Sub编辑解锁点击后可编辑所有单元格这个功能可用于修改编辑错误的内容。代码很简单。
Sub 解锁()Sheets(1).UnprotectSheets(1).Cells.Locked FalseEnd Sub
重玩就是将题目原有单元格保留删除已填写内容。
Sub 重玩()Dim 选择 As VbMsgBoxResultDim rng As RangeDim cell As Range选择 MsgBox(重玩将删除所有已解部分, vbInformation vbYesNo, 警告)If 选择 vbYes ThenCall 解锁For Each cell In Range(B2:J10)If cell.Font.Color vbRed Thencell.ClearContentscell.Interior.Color vbWhiteElsecell.Interior.Color vbWhitecell.Locked TrueEnd IfNextEnd IfRange(b11:j11).Font.Color vbRedSheets(1).Protect
End Sub清空清空所有内容可重新编辑。
Sub 清空()Dim 选择 As VbMsgBoxResult选择 MsgBox(清空所有内容,无法恢复确定, vbInformation vbYesNo, 清空警告)If 选择 vbYes ThenSheets(1).UnprotectSheets(1).Cells.Locked FalseRange(b2:j10).ClearContentsRange(b2:j10).Font.Size 18Range(b2:j10).Font.Color vbBlackCells.Interior.Color vbWhiteEnd IfRange(b11:j11).Font.Color vbRedEnd Sub填写操作区这个就是点击单元格后要在该单元格填写的数字这里面每个数字功能类似。
Sub 填3()Dim selectedRange As RangeSet selectedRange SelectionselectedRange.value 3Call 完成弹窗
End Sub
辅助显示区这个功能是点击题目上有单元格后在题目内所有的该数字都会显示出来起到辅助判定的目的就像最上面的图点击1后题目内所有的1背景色都改为线蓝色。
Sub 查找2()Dim rng As RangeDim cell As RangeCall 解锁count 0Range(B2:J10).Interior.Color vbWhiteFor Each cell In Range(B2:J10)If cell.value 2 Thencell.Interior.Color vbCyancount count 1End IfNextIf count 9 ThenRange(c11).Font.Color vbWhiteEnd IfCall 对工作表保护
End Sub完成显示区如果哪个数字已经全部填写完成该数字会消失。如图所有的9个1都找到1就不再显示。 该功能的实现是通过点击辅助显示区内的数字实现的代码也在里面。
还有其他很多宏代码不一一展示需要的可自行下载研究。比较麻烦的是查重功能就是如果同一行列宫内有数字重复则提示我没写出来是通过录制宏后研究代码后改写的。
下载链接
https://download.csdn.net/download/kim5659/90021131