在屏幕上定位列(Microsoft Excel)
Riek在开发用于设置用户输入屏幕的宏时遇到了问题。列A:G始终需要保留在屏幕上,因此他的宏冻结了这些列。然后,他发出命令以移至Z列以开始输入。这会将列T:Z置于冻结列A:G的右侧。 Riek真正想要的是Z:AF列显示在A:G的右侧,但他不知道该如何完成。
有几种方法可以达到期望的结果。首先是简单地“移动”所需的目标,然后再移回该目标,如以下宏所示:
Sub GotoCol1() With Application ActiveWindow.FreezePanes = False Range("H1").Select ActiveWindow.FreezePanes = True .Goto Range("IV1") .Goto Range("Z1") End With End Sub
重要的代码行是那些使用Goto方法的代码行。第一次跳转到第一行的最后一个单元格,第二次跳转回到真实目标Z1。通过这种方式移动,Z列恰好位于冻结范围A:G的右侧。
尽管这很好用,但更好的解决方案是将Scroll参数与Goto方法一起使用。请考虑以下示例:
Sub GotoCol2() ActiveWindow.FreezePanes = False Range("H1").Select ActiveWindow.FreezePanes = True Application.Goto Reference:=Range("Z1"), Scroll:=True End Sub
Scroll参数对于Goto方法是可选的;它默认为False。如果将其设置为True,则Goto会在窗口中滚动,以便目标范围(Z1)的左上角出现在窗口的左上角。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10523)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: