我希望能够在工作表之间切换并在下一张工作表上具有相同的视图。
例如,我打开sheet1并滚动到AD500(-ish)并查看一些值。
然后,我想用肉眼将这些值与AD500(-ish)上sheet2的值进行比较。
但是,当我切换到sheet2时,它将显示我上次在该图纸上看到的视图。
可以通过某种方式链接它们吗?
我试图为此找到一个设置,但是没有运气。可以使用VBA完成吗?
答案 0 :(得分:1)
Excel本身没有对此设置(但我认为应该有设置),但是您可以在VBA中创建此函数。
Private Sub Worksheet_Activate()
On Error Resume Next
cell = GetSetting("Range", "visiblerange", "cells")
zoomsett = GetSetting("Range", "visiblerange", "zoom")
ActiveWindow.Zoom = zoomsett
Application.Goto Range(cell)
Application.Goto Range(Replace(Split(cell, ":")(0), "$", ""))
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SaveSetting "Range", "visiblerange", "cells", ActiveWindow.VisibleRange.Address
SaveSetting "Range", "visiblerange", "zoom", ActiveWindow.Zoom
End Sub
每次在具有此代码的工作表上进行选择更改时,这会将可见范围的地址保存在注册表中。
然后,当您使用相同的代码激活工作表时,它首先选择整个范围,然后选择左上方的单元格。
它必须选择整个范围以确保它具有相同的视图,然后“取消选择”它选择一个单元格,即左上方。
为了确保您具有相同的视图,它还会设置图纸的缩放比例。
您还可以选择与上一页相同的单元格。
Private Sub Worksheet_Activate()
On Error Resume Next
cell = GetSetting("Range", "visiblerange", "cells")
zoomsett = GetSetting("Range", "visiblerange", "zoom")
sele = GetSetting("Range", "visiblerange", "selection")
ActiveWindow.Zoom = zoomsett
Application.Goto Range(cell)
Application.Goto Range(sele)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
SaveSetting "Range", "visiblerange", "cells", ActiveWindow.VisibleRange.Address
SaveSetting "Range", "visiblerange", "selection", Selection.Address
SaveSetting "Range", "visiblerange", "zoom", ActiveWindow.Zoom
End Sub
要使用此功能,您需要先将代码添加到希望此行为发生的所有工作表上,然后将其保存为启用宏的Excel文件(xlsm)。
在切换工作表之前,请单击可见范围内的某个位置,然后再切换工作表。