帕特里克(Patrick)想知道是否有一种方法可以使单元移动在一个工作簿的一个工作表上向右移动而在同一工作簿的另一个工作表上向下移动。他唯一能找到的是工作簿中所有工作表的全局设置。

帕特里克是对的;此设置是在Excel中全局处理的。您可以按照以下步骤更改设置:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010或更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)

。在对话框的左侧,单击“高级”。 (请参见图1。)

。在“编辑选项”下,确保选中“按Enter后,移动选择”复选框。 (默认情况下,应选中它。)

。使用“方向”下拉列表,根据需要更改方向。

。单击确定。

这将更改您在Excel中打开的所有工作簿的移动方向。如果您希望单个工作表的移动有所不同,则可以通过使用一些事件处理程序来实现。其中有两个附加在您要以不同方式处理的工作表上。只需右键单击工作表的选项卡,然后从出现的上下文菜单中选择代码。然后,您可以将以下内容粘贴到“代码”窗口中:

Private Sub Worksheet_Activate()

Application.MoveAfterReturnDirection = xlToRight End Sub
Private Sub Worksheet_Deactivate()

Application.MoveAfterReturnDirection = xlDown End Sub

激活工作表和通过选择其他工作表停用工作表时,分别触发这些事件处理程序。请注意,激活后,方向将设置为xlToRight,这意味着将向右移动。停用工作表后,该方向将设置为xlDown,这被视为默认方向。

您还将需要第三个事件处理程序;这应该添加到ThisWorkbook模块中:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.MoveAfterReturnDirection = xlDown End Sub

这是必要的,因为如果在“向右移动”

时关闭Excel工作表处于活动状态,那么移动方向仍设置为xlToRight。这意味着下次启动Excel时,它将成为默认方向。通过包含BeforeClose事件处理程序,可以确保将默认值设置为应有的默认值。

这种方法只有一个小的潜在陷阱:当您第一次打开工作簿时,对于首次显示的任何工作表都不会触发Activate事件。这意味着如果您的“向右移动”

将为该工作簿显示工作表,默认情况下,移动不会更改为xlToRight;它仍将设置为默认值,大概是xlDown。若要强制事件处理程序运行,您需要在工作簿中显示另一个工作表,然后返回到原始工作表。如果您不想手动执行此操作,则可以在ThisWorkbook模块中添加第四个事件处理程序,该处理程序也是如此:

Private Sub Workbook_Open()

Sheets("Sheet2").Select     Sheets("Sheet1").Select End Sub

此宏选择一个名为Sheet2的工作表,然后立即选择一个名为Sheet1的工作表。当然,您应该更改工作表名称以反映适合您的工作簿的名称-只需确保最后选择的工作表是“向右移动”

工作表。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(13640)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。