请求:使用VBA或ActiveX滚动条向左或向右移动工作表的迷你滚动条的VBA代码?
我创建了一个训练师技能矩阵,其中列出了教练名称(在单元格'B7'到'B86'中)和顶部列出的技能学科(在单元格E6到'AJ6'中)。在培训师姓名和技能相交的地方,我有一个下拉列表,说明'Y'表示技能,'N'不是技巧,'n \ a'。如果技能不适合该训练师。我冻结了标题行(在单元格E6到'AJ6')和教练名称(在单元格'B7'到'B86'中)以便于交叉引用
我想添加一个'迷你'水平滚动条(位于单元格A4:B4中),其行为与主要的Excel工作表滚动条完全相同(即向左或向右移动工作表)。我已经尝试了ActiveX滚动条和'Googled'解决方案超过4小时没有运气。专家VBA程序员或Excel专家可以提出解决方案或发布一些示例代码吗?干杯!!
答案 0 :(得分:0)
对于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,将最大值设置为多少列...
编辑:如果您希望滚动条与列一起移动,那么您可以在Change
事件中执行类似的操作(但如果将其添加到Scroll
事件中,则会产生一些奇怪的结果:
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
但是 - 如果您然后手动移动工作表(通过箭头键等),则滚动条将移出视图,并且没有要捕获的sheet_scroll事件用于重新定位滚动条。
答案 1 :(得分:0)
请在表格选择更改
上添加以下代码Me.ScrollBar1.Value = ActiveWindow.ScrollColumn - 4
请将要滚动的列调整为适合活动窗口,然后调整scrollbar1的最大滚动值。