"并排观看"和"同步滚动"使2个电子表格的比较比以往更容易。但是,没有"同步切换选项卡"功能,所以如果我切换到其中一个工作簿中的不同选项卡并继续滚动,同步滚动变得非常有趣。
嗯,我不应该抱怨,因为它都是手动完成的,我应该明智地使用这个功能。
作为一个懒惰的开发人员,我想编写一些代码来挖掘自己:我可以编写一个宏来自动执行并行模式下对等窗口上的工作表切换吗?
分为两步:
我完成了我的作业。看来Excel对此功能的编程不是很友好。有3种方法
BreakSideBySide()
CompareSideBySideWith(WindowName)
ResetPositionsSideBySide()
和1个布尔属性
SyncScrollingSideBySide
与此功能相关的Windows
集合,但不足以解决我的问题。
有谁知道如何实现这一目标?或者,这确实不可能吗?先感谢您。
答案 0 :(得分:0)
您可以使用Workbook_SheetActivate事件来实现此目的:
http://msdn.microsoft.com/en-us/library/office/ff195710.aspx
如果您将此代码放入ThisWorkbook对象中,那么每次更改活动工作表时,它都会...
激活其他工作簿中的工作表
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
For i = 1 To Application.Workbooks.Count
If Application.Workbooks(i).Name <> ThisWorkbook.Name Then
Dim otherWB As Workbook
Set otherWB = Application.Workbooks(i)
otherWB.Sheets(Sh.Name).Activate
End If
Next
End Sub
请注意,这需要工作表存在于所有打开的工作簿中。如果不是,将导致错误。但是,您可以轻松添加错误处理以忽略具有未显示的相应工作表的工作簿。
另请注意,当只打开两个工作簿时,最好使用它。我没有看过你提到的其他方法,但是可能存在一种方法来识别当前处于并行模式的两个工作簿,此时代码可以摆脱它的for循环并变得更简洁。