选择宏中的特定单元格(Microsoft Excel)
通常需要在宏中选择特定的单元格。但是,如果该单元格位于其他工作簿中,则很难选择该单元格。
例如,考虑以下两行代码:
Sub CellSelect1() Workbooks("pwd.xls").Sheets("Sheet3").Select ActiveSheet.Range("A18").Select End Sub
您可能会认为该宏将在pwd.xls工作簿中选择Sheet3!A18。确实有一些警告。如果您打开了多个工作簿,并且如果pwd.xls不是当前活动的工作簿,则此宏将导致错误。即使pwd.xls已经打开,但根本没有选中,也会发生这种情况。
即使将选择代码压缩为一行,也存在相同的行为:
Sub CellSelect2() Workbooks("pwd.xls").Sheets("Sheet3").Range("A18").Select End Sub
除了pwd.xls是活动工作簿时,您仍然会收到错误。解决方案是完全改变执行跳转的方式。代替使用Select方法,而使用Goto方法并为该方法指定目标地址:
Sub CellSelect3() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] End Sub
仅当pwd.xls已打开时,此代码才有效,但不必是当前活动的工作簿。如果要滚动目标工作簿,以使指定的单元格位于所查看内容的左上角,则可以将Scroll属性指定为True,如下所示:
Sub CellSelect4() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] _ Scroll:=True End Sub
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2791)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: