excel - 运行宏后如何恢复Excel工作表的确切位置
问题描述
使用 Excel VBA,我如何记忆工作表并将其还原为一组精确的可见行和列?
我有一个 excel 宏,它查看当前单元格的值,计算很多东西并在整个工作簿中运行进行更改,然后将光标恢复到原始单元格。但是原始单元格最终位于窗口的顶行,这很烦人。我希望工作表的视图保持不变,以某种方式不仅记住原始工作表和单元格并在之后选择它们,而且还通过记住可见行和列的确切集!如何?
这有效:
Dim StartingSheet As String
Dim StartingCell As String
StartingCell = ActiveCell.Address
StartingSheet = ActiveSheet.Name
' do a lot of stuff
Worksheets(StartingSheet).Select
Range(StartingCell).Select
但是在宏结束时,可见行和列的集合会发生变化,这很糟糕。
我想运行宏并且在屏幕上看不到任何移动。
解决方案
谢谢大家。就我而言,一个好的解决方案是:
Dim StartingSheet As String
Dim StartingCell As String
Dim StartingScrollRow As Integer
Dim StartingScrollColumn As Integer
StartingCell = ActiveCell.Address
StartingSheet = ActiveSheet.Name
StartingScrollRow = ActiveWindow.ScrollRow ' the row of the top left cell that is showing
StartingScrollColumn = ActiveWindow.ScrollColumn ' the column of the top left cell showing
' do a bunch of stuff
Worksheets(StartingSheet).Select
ActiveWindow.ScrollRow = StartingScrollRow ' make this row the top-most row that’s showing
ActiveWindow.ScrollColumn = StartingScrollColumn ' make this col the left-most col showing
Range(StartingCell).Select ' select the cell that was originally selected
推荐阅读
- javascript - 如何在 PHP 中的 MVC 上使用 AJAX
- angularjs - 谷歌云角度托管站点显示指定的密钥不存在
- javascript - 音乐和弦,包括斜线和弦正则表达式
- android - 我们可以从 Flutter 应用程序更改我们的移动设置吗?
- reactjs - FieldValue.arrayUnion() 未处理的拒绝
- typescript - 与参数类型匹配的函数返回类型(使用扩展运算符时)?
- android - Android Theme - 如何声明多个具有通用样式的主题?
- python - ModuleNotFoundError,当我尝试将模型导入另一个自定义文件夹时
- java - 使用 Rest Assured response.jsonPath().getObject() 进行序列化返回 null
- python - 如何从函数 QSystemTrayIcon 将操作添加到上下文菜单