excel中的一个长表格需要投屏到LED上,想要实现自动循环滚屏播放,但不影响其它sheet,有没有vba可以实现的代码,放置窗体控件也可以,搞一天了没搞出来😭
以下是一个基于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。
你可以根据需要修改代码中的滚动速度和窗口控件的名称。希望这可以帮助你实现自动循环滚屏播放。