使用 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 过程,并激活该工作簿(如果它尚未激活)。
expression
。 Goto(
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
我有六个员工信息部分,下面显示了其中两个部分。在这些部分下方,我有一个 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 过程,并激活该工作簿(如果它尚未激活)。
expression
。 Goto(
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