今天也在勤劳工作呀 2023-05-28 16:48 采纳率: 50%
浏览 56
已结题

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

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。

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 创建了问题 5月28日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵