Button Excel VBA滚动条,用于向左或向右移动工作表
请求:使用VBA或ActiveX滚动条向左或向右移动工作表的小滚动条的VBA代码 我已经创建了一个培训师技能矩阵,在单元格“B7”到“B86”的下方列出了培训师姓名,在单元格E6到“AJ6”的顶部列出了技能规程。在培训师名称和技能相交的地方,我有一个下拉列表,其中“Y”表示有技能,“N”表示没有技能,“N\a”。如果该技能不适合该培训师。我已将单元格E6至“AJ6”中的标题行和单元格“B7”至“B86”中的培训师名称冻结,以便于交叉参考 我想在单元格A4:B4中添加一个“迷你”水平滚动条,其行为与主excel工作表滚动条完全相同,即向左或向右移动工作表。我已经尝试了ActiveX滚动条和“谷歌”解决方案超过4小时,但没有成功。专家级VBA程序员或Excel专家能提出解决方案或提供一些示例代码吗?干杯Button Excel VBA滚动条,用于向左或向右移动工作表,button,excel,activex,scrollbar,vba,Button,Excel,Activex,Scrollbar,Vba,请求:使用VBA或ActiveX滚动条向左或向右移动工作表的小滚动条的VBA代码 我已经创建了一个培训师技能矩阵,在单元格“B7”到“B86”的下方列出了培训师姓名,在单元格E6到“AJ6”的顶部列出了技能规程。在培训师名称和技能相交的地方,我有一个下拉列表,其中“Y”表示有技能,“N”表示没有技能,“N\a”。如果该技能不适合该培训师。我已将单元格E6至“AJ6”中的标题行和单元格“B7”至“B86”中的培训师名称冻结,以便于交叉参考 我想在单元格A4:B4中添加一个“迷你”水平滚动条,其行为
对于ActiveX滚动条:
'in the sheet code module
Private Sub ScrollBar1_Change()
ActiveWindow.ScrollColumn = 4 + Me.ScrollBar1.Value
End Sub
Private Sub ScrollBar1_Scroll()
ActiveWindow.ScrollColumn = 4 + Me.ScrollBar1.Value
End Sub
将滚动条最小值设置为1,最大值设置为您拥有的列数
编辑:如果希望滚动条与列一起移动,则可以在更改事件中执行类似操作,但如果将其添加到滚动事件中,则会产生一些奇怪的结果:
Private Sub ScrollBar1_Change()
Dim sc As Long
sc = 4 + Me.ScrollBar1.Value
ActiveWindow.ScrollColumn = sc
Me.ScrollBar1.Left = Me.Cells(1, sc).Left
End Sub
但是-如果您随后通过箭头键等手动移动工作表,则滚动条将移出视图,并且没有可捕获的工作表滚动事件用于重新定位滚动条。请在工作表选择更改上输入以下代码
Me.ScrollBar1.Value = ActiveWindow.ScrollColumn - 4
请调整要滚动到活动窗口的列,然后调整scrollbar1的最大滚动值。在您的情况下,窗口拆分是否有效?这将给你完全相同的滚动条,我想这是你正在寻找的,但很抱歉,如果没有:。这真的工作得很好,非常感谢!是否有任何方法可以使其浮动,以便在我向左和向右滚动时,尽管列滚动,但它仍保持在同一位置,即它浮动在列上,但被锁定,无法编辑。这有意义吗?