excel中的一个长表格需要投屏到LED上,想要实现自动循环滚屏播放,但不影响其它sheet,有没有vba可以实现的代码,放置窗体控件也可以,搞一天了没搞出来😭
1条回答 默认 最新
- 北海屿鹿 2023-05-29 08:41关注
以下是一个基于VBA的代码示例,可以实现Excel中一个长表格的自动循环滚屏播放,同时不影响其他sheet。你可以将代码复制到Excel的VBA编辑器中,然后在该工作簿中添加一个窗体控件(如CommandButton),并将其绑定到该代码的Sub过程中。
Private Sub CommandButton1_Click() Dim i As Long, j As Long, k As Long Dim rowHeight As Double, screenHeight As Double Dim rowCount As Long, screenCount As Long '设置滚动速度,单位为毫秒 Const scrollSpeed = 100 '获取当前sheet的行数和屏幕高度 rowCount = ActiveSheet.UsedRange.Rows.Count screenHeight = Application.UsableHeight '计算需要滚动的屏幕数 screenCount = rowCount / screenHeight If rowCount Mod screenHeight > 0 Then screenCount = screenCount + 1 End If '循环滚动 For i = 1 To screenCount '计算当前屏幕的起始行和结束行 j = (i - 1) * screenHeight + 1 k = i * screenHeight If k > rowCount Then k = rowCount '设置当前屏幕的行高 rowHeight = screenHeight / (k - j + 1) For l = j To k ActiveSheet.Rows(l).RowHeight = rowHeight Next l '等待一段时间 Application.Wait Now + scrollSpeed / 1000 / 24 / 60 / 60 '滚动到下一屏幕 ActiveWindow.ScrollRow = k Next i '恢复所有行的行高 For i = 1 To rowCount ActiveSheet.Rows(i).RowHeight = -1 Next i End Sub
该代码会根据当前sheet的行数和屏幕高度,计算需要滚动的屏幕数,并循环滚动每个屏幕。在每个屏幕中,会将该屏幕内的所有行的行高设置为相同的值,以实现滚动效果。在滚动过程中,代码会等待一段时间,以控制滚动速度。最后,代码会恢复所有行的行高,以确保不影响其他sheet。
你可以根据需要修改代码中的滚动速度和窗口控件的名称。希望这可以帮助你实现自动循环滚屏播放。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 C语言用正向迭代,反向迭代解决问题
- ¥15 想要卸载软件(maltab)但是在控制面板的程序和功能中没有要卸载的软件怎么办?
- ¥15 关于sp验证的一些东西,求告知如何解决,
- ¥20 关于#javascript#的问题:但是我写的只能接码数字和字符,帮我写一个解码JS问题
- ¥15 prophet运行报错,如何解决?
- ¥15 用GPU跑pytorch搭建的LSTM的时候出现了奇怪的报错
- ¥20 前端数据是从session等作用域拿到的,如何取值继续传递后端呢
- ¥15 eclipse无法正常运行
- ¥15 定义了函数,但是无法根据函数定义触发器
- ¥20 5变量卡诺图化简得出与非门电路图