网站首页 > 技术教程 正文
前段时间,领导让对某个活动的人员进行抽签排序后参加活动,于是借助AI写了这么一个程序,跟大家共享。这里面A列是抽签号,B列是姓名,让姓名进行随机滚动,最后形成新的排序。
Dim isRunning As Boolean
Dim stopTime As Double
Dim scrollSpeed As Double
Dim lastRow As Long ' 将lastRow声明为模块级变量
Sub StartScrolling()
' 设置滚动速度(秒),数值越小滚动越快
scrollSpeed = 0.1
isRunning = True
stopTime = Now + TimeSerial(0, 0, 10) ' 10秒后自动停止
' 禁用自动计算和事件以提高性能,但保持屏幕更新
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Application.ScreenUpdating = True ' 保持屏幕更新以看到滚动效果
' 开始滚动
Do While isRunning And Now < stopTime
Randomize
With ActiveSheet
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
' 随机排序B列数据(从第2行开始)
Dim arr() As Variant
If lastRow > 1 Then
arr = .Range("B2:B" & lastRow).Value
' Fisher-Yates洗牌算法
Dim i As Long, j As Long, temp As Variant
For i = UBound(arr, 1) To 2 Step -1
j = Int((i - 1) * Rnd) + 1
temp = arr(i, 1)
arr(i, 1) = arr(j, 1)
arr(j, 1) = temp
Next i
' 直接在B列更新并设置格式
With .Range("B2").Resize(UBound(arr, 1), 1)
.Value = arr
.Font.Color = RGB(255, 0, 0) ' 红色字体
.Font.Bold = True ' 加粗
End With
End If
End With
' 控制滚动速度并保持响应
Dim startTime As Double
startTime = Timer
Do While (Timer - startTime) < scrollSpeed And isRunning
DoEvents ' 关键点:允许处理其他事件
If Not isRunning Then Exit Do
Loop
If Not isRunning Then Exit Do
Loop
' 恢复Excel设置
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
' 停止后保持当前随机结果(不再恢复原始数据)
If Now >= stopTime Then
MsgBox "滚动已完成!最终结果已保留。", vbInformation
' 保持当前随机排序结果
With ActiveSheet
lastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
' 保留红色加粗字体或恢复默认格式(根据需要选择)
' 如果要恢复默认格式,取消下面三行注释
'.Range("B2:B" & lastRow).Font.Color = RGB(0, 0, 0) ' 恢复黑色
'.Range("B2:B" & lastRow).Font.Bold = False ' 取消加粗
End With
End If
End Sub
Sub StopScrolling()
isRunning = False
DoEvents
End Sub
以上仅供参考。
- 上一篇: VB6实现注意力实验代码
- 下一篇: 「5.高级数据类型」7.指针
猜你喜欢
- 2025-08-03 我是如何使用ChatGPT和CoPilot作为编码助手的
- 2025-08-03 Rocky Linux 9 系统初始化与安全加固脚本
- 2025-08-03 借助云服务快速生成背景图片
- 2025-08-03 腾讯云主机安全「等保三级」CentOS7安全基线检查策略
- 2025-08-03 Excel常用技能分享与探讨(5-宏与VBA简介 VBA-实用自定义过程)
- 2025-08-03 免费的本地AI视频生成,在ComfyUI中运行Mochi视频大模型
- 2025-08-03 vbs经典短代码
- 2025-08-03 通过篡改cred结构体实现提权利用
- 2025-08-03 给微信设置卡通头像,再不怕撞脸
- 2025-08-03 Masscan扫描工具神器,号称最快扫描器
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)