我试图在工作表中的多个位置放置一个交互式表格,以防止我的用户不得不重复滚动浏览这个庞大的工作表。每次从任何位置更新此表时,我希望所有表都更新。我有一个(可能无用的)开始:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r1 As Range, r2 As Range
Set r1 = Range("M205:p205")
Set r2 = Range("m207:p207")
If Intersect(Target, r1) Is Nothing Then Exit Sub
Application.EnableEvents = False
r2.Value = r1.Value
Application.EnableEvents = True
r1.Value = r2.Value
End Sub
但这只会“镜像”一个方向的单元格。我不知道如何实现双向镜像。理想情况下,我会有 4 个这样的交互式表格,它们彼此更新。
谢谢
答案1
您的代码实际上是一个非常好的开始!
我对其进行了一些改进,以适合您的情况:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r1 As Range, r2 As Range, r3 as Range, r4 as Range
Dim TempRng as Range
Set r1 = Range("M205:p205")
Set r2 = Range("m207:p207")
set r3 = Range(<your_address3>)
set r4 = Range(<your_address4>)
If not Intersect(Target, r1) is Nothing then
set TempRng = r1
Else If not Intersect(Target, r2) is Nothing then
set TempRng = r2
Else If not Intersect(Target, r3) is Nothing then
set TempRng = r3
Else If not Intersect(Target, r4) is Nothing then
set TempRng = r4
Else
Exit Sub
End If
Application.Enableevents = False
r1.Value = TempRng.Value
r2.Value = TempRng.Value
r3.Value = TempRng.Value
r4.Value = TempRng.Value
Application.Enableevents = True
End Sub
答案2
您不一定需要镜像单元格才能让用户始终看到相同的单元格。Excel 提供了三种本机方法来管理电子表格的“视图”:
拆分窗口(视图 > 拆分)。将一张工作表拆分为两个水平或两个垂直部分或同一张工作表的四个象限(取决于您在单击拆分之前选择的是行、列还是单个单元格)。
冻结窗格(视图 > 冻结窗格)。与拆分类似,但顶部/左侧/左上部分被冻结在原地,无法滚动。
新窗口(视图 > 新窗口,然后是视图 > 排列全部)。此选项将创建同一文件的两个打开的“工作表视图”。对于同时查看同一文件的不同工作表非常有用。请注意文件名顶部中心旁边的“:1”和“:2”数字。这表示哪个视图窗口当前处于活动状态。
所有这些高级查看选项都将与文件一起保存,如果您保存、关闭并重新打开文件,这些选项将被恢复。
希望对您有所帮助!如果您需要有关这些方法的更多信息,只需在 Google 或 YouTube 上搜索“如何在 Excel 中使用冻结窗格”即可。