布鲁斯在工作簿中定义了一个命名范围(帐户),他想知道如何从宏中访问和使用该命名范围。使用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培训的来源。

本技巧(12612)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处为Excel的较旧菜单界面找到此技巧的版本: