excel 2010 中跨多张工作表同步滚动

excel 2010 中跨多张工作表同步滚动

我试图弄清楚,如何在拆分水平视图中滚动跨一个工作簿的多个工作表,并且在工作表之间切换时不关闭行号。

当您有 2 张工作表时,Excel 同步滚动效果很好。我的工作表 1 始终位于顶部,工作表 1 至 5 位于底部。当我在底部的工作表之间切换时,行号不同步。此外,我花的时间越长,同步数字就越多,即使重置窗口位置也无济于事。

  1. 问题:假设我位于 Sheet1 的第 100 行,Sheet2 的第 100 行,然后我切换到 Sheet 3,它将从第 1 行开始,但是 Sheet1 位于第 100 行。而且我切换得越多,就越混乱。

  2. 问题:为什么滚动一段时间后会开始滞后?例如:Sheet1 位于编号 1,Sheet2 位于编号 1。当我从 Sheet1 开始滚动时,它到达编号 60,然后 Sheet2 才从编号 1 开始滚动,但之后出现了 60 个编号的差异?

任何帮助都将受到赞赏。

答案1

首先,Excel 运行正常。你期望它做一些它做不到的事情。

同步滚动每次只能处理两张工作表。这是程序的限制。每次切换工作表时,程序都会从​​该工作表未激活时的位置开始。因此,切换的次数越多,程序就越“不同步“床单得到了。

我发现的唯一解决方法是使用 VBA 宏,如果您愿意的话,可以尝试一下。两个以上窗口同步滚动使用以下 VBA 一次滚动两张以上的工作表。

注意:使用时请自担风险。请先备份您的工作。

Sub SynchSheets()
    ' Duplicates the active sheet's cell position in each sheet

    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub

    Dim shUser As Worksheet
    Dim sht As Worksheet
    Dim lTopRow As Long
    Dim lLeftCol As Long
    Dim sAddr As String

    Application.ScreenUpdating = False

    ' Note the current sheet
    Set shUser = ActiveSheet

    ' take information from current sheet
    With ActiveWindow
        lTopRow = .ScrollRow
        lLeftCol = .ScrollColumn
        sAddr = .RangeSelection.Address
    End With

    ' loop through worksheets
    For Each sht In ActiveWorkbook.Worksheets
        If sht.Visible Then 'skip hidden sheets
            sht.Activate
            Range(sAddr).Select
            ActiveWindow.ScrollRow = lTopRow
            ActiveWindow.ScrollColumn = lLeftCol
        End If
    Next sht

    shUser.Activate
    Application.ScreenUpdating = True
End Sub

答案2

有一个名为 KuTools 的插件可以让你做到这一点。只需进入新的企业选项卡并点击工作表/同步工作表

还有许多其他非常有用的功能。您可以免费试用,然后如果它对您有用,请付费。我已经购买了它,而且 - 至少对我来说 - 物有所值。

相关内容