Excel 快捷方式:在上一个活动工作表和当前退出工作表之间来回切换

Excel 快捷方式:在上一个活动工作表和当前退出工作表之间来回切换

我知道快捷键 CRTL + 向上/向下翻页,但我需要类似的功能,例如在 Internet Explorer 中:Shift + alt 我发现了一个接近但不能完全解决问题的宏:

如果 ActiveSheet.Name = "待办事项",则 Sheets("预算").Activate ElseIf ActiveSheet.Name = "预算",则 Sheets("待办事项").Activate

我可以用工作表名称命名 A1 单元格,然后使用搜索 (f5) 并输入名称,但这太麻烦了。

大家有什么想法吗?

答案1

Dan 的解决方案有效。如果您不想将 LastSheet 存储在单元格范围内,请尝试:

 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  ActiveWorkbook.Names.Add Name:="whchSheet", RefersToR1C1:=Sh.Name
 End Sub

仍然按照他的建议创建一个热键

 Sub MoveToLastSheet()
  Sheets(Application.Evaluate(Names("whchSheet").Value)).Select
 End Sub

答案2

我的做法是:使用View> Window>New Window在不同的应用程序窗口中打开当前工作簿。使用每个窗口显示您正在使用的其中一个工作表。现在您可以使用常规Alt+ Tab(在 Windows 上)在它们之间切换。

这种方法还有另一个好处:一个工作簿可以在两个以上的窗口中打开,每个窗口显示不同的工作表。

这种方法的(可能的)缺点是,如果自上次查看 Excel 后另一个应用程序窗口已变为活动状态,则可能需要多次按Alt+ 。Tab

不过,您也可以:

  • 使用任务视图显示所有打开的窗口并轻松选择一个Win+ Tab
  • 如果您使用许多不同的应用程序/文档,请将您的 Excel 窗口放在它们自己的虚拟桌面中。当您在该桌面中时,Alt+将正常工作。您可以使用+ +Tab切换到“上一个”桌面,然后再次执行该操作以返回包含 Excel 窗口的桌面。如果我正在处理项目,我通常会将“常规应用程序”(浏览器、电子邮件、OneNote)放在一个虚拟桌面中,并为每个项目设置不同的桌面。WinCtrlLeft
  • 如果您打开了多个 Excel 窗口,并且它们在任务栏中分组在一起,则可以通过Ctrl+Click分组任务栏按钮来循环浏览它们(按照它们最后活动的顺序)。

显然,每种方法都有不同的优点和缺点,这取决于您打开了多少个应用程序和文档,以及您想要如何与它们交互。

答案3

如果您想添加热键以切换到上一个工作表,请首先在某处创建一个名为“LastSheet”的单元格来存储最后一张工作表的值。然后将其放入您的 ThisWorkbook 中:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Range("LastSheet").Value = Sh.Name
End Sub

现在,在 Module1 中放置以下代码:

Sub MoveToLastSheet()
Sheets(Range("LastSheet").Value).Select
End Sub

为 MoveToLastSheet 宏创建一个热键,这样就大功告成了。这会带您到您访问过的上一个工作表。

相关内容