首页 > 解决方案 > 使用activex控件从左到右滚动excel窗口

问题描述

在此处输入图像描述

我有六个员工信息部分,其中两个如下所示。在这些部分下面,我有一个 activex 滚动条,我想从左到右使用它。此滚动条与 Excel 工作表中的滚动条不同。基本上,目前我看到的是第 1 节和第 2 节。当我将此卷轴从左向右移动时,我应该看到第 2 和第 3 节,当我从左向右移动时,我应该再次看到第 3 和第 4 节,... 。 等等。

我怎样才能实现这个功能。

我在这里尝试过使用这段代码。

    Private Sub ScrollBar3_Change()
    Dim sc As Long
    sc = 4 + Me.ScrollBar3.Value
    ActiveWindow.ScrollColumn = sc
    Me.ScrollBar3.Left = Me.Cells(1, sc).Left
    End Sub

滚动条当前从 C32 开始,到 AA32 结束。但是当我点击它时,滚动条突然消失了。

提前致谢 :)

标签: excelvbascrollbaractivex

解决方案


您应该Scrollbar.Max等于最大移动次数。我还建议Application.Goto Range(), True在移动滚动条之前使用。

在此处输入图像描述

在此处输入图像描述

这是确保一切保持同步的简单方法:

设置Worksheet.ScrollArea将限制用户滚动的能力

在此处输入图像描述

用户友好的代码

Private Sub ScrollBar3_Change()
    Dim col As String
    col = Choose(Me.ScrollBar3.Value, "C", "N", "AB")
    Application.Goto Cells(21, col), True
    Me.ScrollBar3.Left = Columns(col).Left
End Sub

极权法典

Private Sub ScrollBar3_Change()
    Dim col As String
    col = Choose(Me.ScrollBar3.Value, "C", "N", "AB")
    Me.ScrollArea = ""
    Application.Goto Cells(21, col), True
    Me.ScrollArea = Cells(21, col).Address
    Me.ScrollBar3.Left = Columns(col).Left
End Sub

推荐阅读