在宏中使用命名范围(Microsoft Excel)
布鲁斯在工作簿中定义了一个命名范围(帐户),他想知道如何从宏中访问和使用该命名范围。使用Range对象或Names集合,可以通过多种方式访问范围。
要使用Range对象访问命名范围,您所需要做的就是提供范围名称作为该对象的参数。此名称与您在Excel中定义的名称相同。例如,以下行可以用于更改整个范围的内部颜色:
Worksheets("Sheet1").Range("Account").Interior.Color = vbYellow
注意,Range对象是相对于特定工作表(在本例中为Sheet1)使用的。您还可以在VBA中定义范围对象,然后将其分配为等于命名范围,方法是:
Set rng = Worksheets("Sheet1").Range("Account")
使用命名范围的另一种方法是使用Names集合。以下行将再次将该范围的内部颜色设置为黄色:
Workbooks("Book1.xls").Names("Account").RefersToRange.Interior.Color = vbYellow
请注意,Names集合是相对于整个工作簿的,因此当您使用此访问方法时,不必知道命名范围与哪个工作表相关联。您还可以在VBA中定义范围对象并将其分配为与命名范围相同:
Set rng = Workbooks("Book1.xls").Names("Account").RefersToRange
您应该知道,只有在工作簿的不同工作表上没有定义相同的命名范围时,访问命名范围的Names收集方法才可行。如果这样做,则将需要使用Range对象方法,该方法要求在引用中使用特定的工作表名称。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3106)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: