我试图弄清楚,如何在拆分水平视图中滚动跨一个工作簿的多个工作表,并且在工作表之间切换时不关闭行号。
当您有 2 张工作表时,Excel 同步滚动效果很好。我的工作表 1 始终位于顶部,工作表 1 至 5 位于底部。当我在底部的工作表之间切换时,行号不同步。此外,我花的时间越长,同步数字就越多,即使重置窗口位置也无济于事。
问题:假设我位于 Sheet1 的第 100 行,Sheet2 的第 100 行,然后我切换到 Sheet 3,它将从第 1 行开始,但是 Sheet1 位于第 100 行。而且我切换得越多,就越混乱。
问题:为什么滚动一段时间后会开始滞后?例如: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 的插件可以让你做到这一点。只需进入新的企业选项卡并点击工作表/同步工作表。
还有许多其他非常有用的功能。您可以免费试用,然后如果它对您有用,请付费。我已经购买了它,而且 - 至少对我来说 - 物有所值。