Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Button Excel VBA滚动条,用于向左或向右移动工作表_Button_Excel_Activex_Scrollbar_Vba - Fatal编程技术网

Button Excel VBA滚动条,用于向左或向右移动工作表

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中添加一个“迷你”水平滚动条,其行为

请求:使用VBA或ActiveX滚动条向左或向右移动工作表的小滚动条的VBA代码

我已经创建了一个培训师技能矩阵,在单元格“B7”到“B86”的下方列出了培训师姓名,在单元格E6到“AJ6”的顶部列出了技能规程。在培训师名称和技能相交的地方,我有一个下拉列表,其中“Y”表示有技能,“N”表示没有技能,“N\a”。如果该技能不适合该培训师。我已将单元格E6至“AJ6”中的标题行和单元格“B7”至“B86”中的培训师名称冻结,以便于交叉参考

我想在单元格A4:B4中添加一个“迷你”水平滚动条,其行为与主excel工作表滚动条完全相同,即向左或向右移动工作表。我已经尝试了ActiveX滚动条和“谷歌”解决方案超过4小时,但没有成功。专家级VBA程序员或Excel专家能提出解决方案或提供一些示例代码吗?干杯


对于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的最大滚动值。

在您的情况下,窗口拆分是否有效?这将给你完全相同的滚动条,我想这是你正在寻找的,但很抱歉,如果没有:。这真的工作得很好,非常感谢!是否有任何方法可以使其浮动,以便在我向左和向右滚动时,尽管列滚动,但它仍保持在同一位置,即它浮动在列上,但被锁定,无法编辑。这有意义吗?