Excel VBA中滚动条,其转移片向左或向右(Excel VBA Scroll bar which

2019-09-24 05:44发布

请求:用于微型滚动条,其左移片或向右VBA或ActiveX滚动条VBA码?

我创建了具有往下方上市的教练的名字(通过“B86”细胞“B7”)和技能学科沿着顶部列出(细胞E6通过“AJ6”)教练技能矩阵。 当培训师的名字和技能相交我有一个下拉列表,说明“Y”为有技能,“N”没有技能和“n \”上。 如果技能是不适合那个教练。 我已冻结的标题行(在细胞E6为“AJ6”)和教练员名(在细胞的B7'到“B86”),用于容易交叉引用

我想加入一个“小”水平滚动条(位于小区A4:B4),这将行为酷似主Excel表单滚动条(即移动片左或右)。 我已经试过,没有运气的ActiveX滚动条和“谷歌搜索”的解决方案超过4小时。 难道专家VBA编程或Excel大师提出一个解决方案或spost一些示例代码? 干杯!!

我的教练技能矩阵的屏幕截图

Answer 1:

对于一个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事件追上使用重新定位滚动条。



Answer 2:

请把下面的代码在纸张选择变化

Me.ScrollBar1.Value = ActiveWindow.ScrollColumn - 4

请调整要作为FITT滚动到活动窗口,然后调整scrollbar1最大滚动值的列。



文章来源: Excel VBA Scroll bar which shift sheet left or right