0

我正在通过创建一个具有三个按钮而不是要查看三个选项卡的工作表来简化工作表。

这是工作簿。

https://dl.dropbox.com/u/3327208/Excel/Archives.xlsx

我试图做的是,每个按钮对应一个特定的选项卡,它最终会调整每个字段以适应每个选项卡中的每个对应列。由于存档 1 需要与存档 2 或 3 不同的格式。

现在这将是一个简单的复制和粘贴概念,但我想做的是让这比基本脚本更复杂一点的两件事,因为我可以创建一个删除列并将数据粘贴到单元格的脚本,但我会正在使用滚动条,据我所知,它不能被相同的命令删除,或者可以吗?这就是我要找的...

- 如何创建一个滚动条,所有数据都与它对应,因此它将与所述活动数据一起使用,所以如果我按下第一个按钮,屏幕上的所有数据都将对应于存档 1,滚动条也将对应。如果我按下按钮 2,数据和滚动条将对应于存档 2,等等...

  • 拥有它,这样滚动条与之交互的相关行数将始终对应于最后一行,因此当滚动条到达底部时,最后没有“空”数据。

  • 如何也删除所述滚动条,以便它可以被其他人替换。

- 这是一种需要,而不是需要,但要使输入数据的单元格与滚动条交互,并且滚动条只会下降到可见工作表的高度。所以在英语中,如果工作表显示 20 行,那就是条和数据的距离。

再次感谢。

我决定尝试使用 lastrow 概念来制作它,以便脚本将“lastrow”输入到 .Max 中,因为滚动条不会超过最后一行数据,这里是代码:

    Sub scrollbar()

    Dim lastrow As Long
    Dim wsJAR As Worksheet 'JL Archive
    Dim wsARC As Worksheet 'JL Archive
    Set wsJAR = Sheets("JL Archive")
    Set wsARC = Sheets("Archives")

    With wsARC
    lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
    ActiveSheet.ScrollBars.Add(1107, 44, 15, 404).Select

        With Selection
            .Max = lastrow
            .LinkedCell = "Lists!$G$3"
        End With
    End With
End Sub

没有错误,它接受 lastrow 作为数字,但即使没有理由这样做,它也会继续通过单元格。

最后一行是 36,现在如果我从 36 中删除 13,它可以完美运行,但我无法想象这就是答案。

4

1 回答 1

1

改变

With wsARC
    lastrow = wsJAR.Range("B" & Rows.Count).End(xlUp).Row
    wsARC.FreezePanes = False
    Range("A1:Q13").Select
    Range("Q1").Activate
    wsARC.FreezePanes = True
End With

With wsARC
    lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
    .Activate
    ActiveWindow.FreezePanes = False
    .Range("A1:Q13").Select
    .Range("Q13").Activate
    ActiveWindow.FreezePanes = True
End With

最终代码

Sub freezecells()
    Dim lastrow As Long
    Dim wsJAR As Worksheet 'JL Archive
    Dim wsARC As Worksheet 'Archive

    Set wsJAR = Sheets("JL Archive")
    Set wsARC = Sheets("Archives")

    With wsARC
        lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
        .Activate
        ActiveWindow.FreezePanes = False 
        .Range("A1:Q13").Select
        .Range("Q13").Activate
        ActiveWindow.FreezePanes = True
    End With
End Sub
于 2012-06-06T15:46:52.123 回答