网站首页 > 技术文章 正文
黑客帝国里的经典一幕,形象地把代码流展示到屏幕上,让你感觉到数据变化有多么神奇。
严格来说,任何编程语文都可以实现这个场景,本节介绍一下,通过VBA代码实现的基本思路。
实现效果如下图所示,没有展示动态图片,感觉还有点不尽人意。
由于,动画不是十分连贯,总是少了一些感动。
如果哪位实现了更加平滑的效果,欢迎留言。
本示例通过Application对象的一些方法来实现,动态效果。
显示内容为26个英文大写字母,当然也可以换成任意喜欢的字符,0或1也是可以的。
如:
- Application.Ontime()'等待几秒执行程序
- Application.Wait()'暂停程序
下面参考一下具体代码:
Public zArr(25)'定义存放字母数组
Public isTrue As Boolean
Public r As Range
Public Sub setValue()
If isTrue Then Exit Sub
Dim zi As Integer, ri As Integer, ci As Integer, xi As Integer, rxi As Integer
zi = VBA.Int((25 - 0 + 1) * VBA.Rnd) + 0
ci = VBA.Int((25 - 1 + 1) * VBA.Rnd) + 1
xi = VBA.Int((20 - 1 + 1) * VBA.Rnd) + 1
For ri = 1 To xi
For rxi = 1 To xi - ri
zi = VBA.Int((25 - 0 + 1) * VBA.Rnd) + 0
ActiveSheet.Cells(ri, ci).Item(rxi).Value = zArr(zi)
Next rxi
If ri > 1 Then ActiveSheet.Cells(ri, ci).Offset(-1, 0).ClearContents
Application.Wait (Now + TimeValue("00:00:01"))
DoEvents
Next ri
DoEvents
Application.OnTime Now() + TimeValue("00:00:01"), "setValue"
End Sub
上述代码为实现动态效果的过程,存放在模块中。
这里需要做些的变量设置,本示例为26个大写字母,设置方法如下代码:
Dim zChr As Integer, zi As Integer
zColor = 9
For zChr = 65 To 90
zArr(zChr - 65) = VBA.Chr(zChr)
Next zChr
其中,zArr就是存放字母的数组变量。
按钮完整代码
Private Sub CommandButton1_Click()
isTrue = False'设置终止程序条件变量
Application.DisplayAlerts = False
Dim zColor As Integer
Dim zChr As Integer, zi As Integer
zColor = 9
For zChr = 65 To 90
zArr(zChr - 65) = VBA.Chr(zChr)
Next zChr
Set r = ActiveSheet.Range("A1").Resize(20, 26)
With r
.Interior.Color = 1
.Font.Color = RGB(12, 255, 12)
End With
If Not isTrue Then setValue
Application.DisplayAlerts = True
End Sub
代码中还有一个关键变量isTrue,是跳出循环的一个布尔变量,没有这个变量,程序会变成一个无限循环,结果就是一直循环出不来。
isTrue定义成全局变量,存放位置在模块中,Public isTrue as Boolean
整合完成就可以调试效果了。
总的来说,并不如其它代码实现效果好,如果用JS就十分可观了。
但是,主要是对整个过程的思路进行一下探索,并没有太高尚的意义。
欢迎关注、收藏
---END---
猜你喜欢
- 2024-10-01 Excel VBA 事件过程实现数据变化结果也会随之自动更新
- 2024-10-01 每天长时间盯着电脑,这三招帮你缓解眼睛疲劳
- 2024-10-01 Excel-VBA:13、Excel事件程序(vba事件怎么触发)
- 2024-10-01 excel vba常用语句干货分享,错过了就不会再有了(关注!)
- 2024-10-01 设计模式之观察者模式,事件机制的底层原理全面解析(建议收藏)
- 2024-10-01 相同单元格自动变色提醒(相同单元格自动变色提醒怎么取消)
- 2024-10-01 Excel实用技巧:根据条件,锁定某个单元格
- 2024-10-01 苹果电脑这些超实用的隐藏功能,不会用就等于白花钱了!
- 2024-10-01 办公小技巧:制作自动显示子菜单的下拉菜单
- 2024-10-01 常用的、带解释的 VBA 短句(vba常用语句详解)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- phprequire_once (61)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)