使用 activex 控件从左到右滚动 excel window

Scroll excel window left to right with activex control

我有六个员工信息部分,下面显示了其中两个部分。在这些部分下方,我有一个 activex 滚动条,我想从左到右使用它。这个滚动条和excelsheet中的滚动条不一样。基本上,目前我看到第 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结束。 但是当我点击它的时候,滚动条突然消失了

提前致谢:)

您的问题可以有多种解释(因为它有些含糊),但我怀疑这可能就是您要找的。

Application.Goto 方法

选择任何工作簿中的任何范围或 Visual Basic 过程,并激活该工作簿(如果它尚未激活)。

expressionGoto( Reference , Scroll )

  • expression 表示应用程序对象的变量。
  • Reference 可选(变体)目的地。可以是 Range 对象、包含 R1C1 样式表示法的单元格引用的字符串,或包含 VBA 过程名称的字符串。如果省略此参数,则目标是您使用 Goto 方法到达 select 的最后一个范围。
  • Scroll 可选(变体)True 滚动 window 以便范围的左上角出现在 window 的左上角。 False 不滚动 window。默认值为 False .

示例:

Sub demo_JumpToSection()

    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")

    MsgBox "Click to go to the next section.", , "Go to column AA"
    Application.Goto ws.Range("AA1"), True

    MsgBox "Click to go to the next section.", , "Go to column BB"
    Application.Goto ws.Range("BB1"), True

    MsgBox "Click to go to the next section.", , "Go to column CC"
    Application.Goto ws.Range("CC1"), True

    MsgBox "Click to go back to the beginning.", , "Go to column A"
    Application.Goto ws.Range("A1"), True

End Sub

您应该 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