【提问】excel单表格自动循环滚屏的vba代码

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。

你可以根据需要修改代码中的滚动速度和窗口控件的名称。希望这可以帮助你实现自动循环滚屏播放。