分享

Excel VBA解读(64):初步使用名称

 江上向东数峰青 2017-06-17

 

本文主要介绍Range对象关于名称的属性和方法,为进一步理解名称及其应用打下基础。

 

认识名称

名称是Excel中一个非常有用的功能,我们看看下图中展示的Excel对名称的定义。

Excel提示我们命名单元格,以便可以在公式中使用名称引用这些单元格。在实际使用中,名称不仅方便我们编写和使用公式分析处理数据,而且方便我们更好更有效地管理数据。结合名称,有许多Excel应用技巧。

 

如上图所示,我们可以直接在工作表顶部左侧的名称框中直接输入名称,来定义所选单元格或者单元格区域的名称;也可以单击“公式”选项卡“定义名称”组中的“定义名称”命令,在弹出的“新建名称”对话框中来定义名称。

 

通常,在定义名称后,我们可以在工作表顶部左侧的名称框中单击其下拉箭头,看到工作簿中的名称列表。但是,在名称框中不会出现定义的名称常量和动态名称。

 

可以定义全局名称和局部名称。全局名称可以在当前工作簿中任一工作表中使用,而局部名称只能在指定的工作表中使用。

 

与在Excel中一样,在VBA中也可以创建和使用名称,并且同样方便编写代码数据处理。

 

录制定义名称的宏

下面定义单元格区域A1:A6的名称为Data,并录制定义名称的操作。

录制的代码如下:

 

说明

  • 代码使用Names对象的Add方法添加名为“Data”的名称,命名区域为A1:A6

  • Names对象将在后续示例或者专题系列中详细讲解。

 

使用Name属性定义名称

上述录制的代码定义的名称也可以使用Range对象的Name属性来实现:

 

说明

  • Name属性返回或者设置代表对象名称的值。

  • Range对象的名称是Name对象。

 

使用CreateNames方法定义名称

Excel中,可以单击“根据所选内容创建”,调出“以选定区域创建名称”,能够快速创建区域名称。例如,先选中单元格区域后,选取“首行”复选框,Excel将以单元格区域的首行作为区域名称,如下图所示。

上述操作对应着Range对象的CreateNames方法。使用VBA代码,以首行创建单元格区域名称的代码如下:

说明

  • CreateNames方法的语法如下:

Range对象.CreateNames(Top,Left,Bottom,Right)

  • CreateNames方法为当前单元格区域创建命名区域。如果设置参数TopTrue,那么以单元格区域的首行作为其下方区域的名称;如果设置参数BottomTrue,那么以单元格区域的底部行作为其上方区域的名称;同理,设置参数Left或者Right将分别以左侧行或者右侧行作为区域的名称。

 

Range对象与名称相关的其他方法

ApplyNames方法

在指定的单元格区域中应用名称到该区域的所有单元格。例如,将单元格A1命名为Rate,如果指定单元格区域中有公式=A1*500,那么使用ApplyNames方法后,公式变为=Rate*500

ApplyNames方法的详细语法可参见官方帮助文档。

 

ListNames方法

在指定的单元格区域中以左上角单元格为起点粘贴所有非隐藏的名称。

 

示例1:列出工作簿中的所有命名区域的名称

使用下面的代码在当前工作表中列出工作簿中所有命名区域的名称:

 

示例2:对命名区域进行格式化操作

如果工作表中有一个名为“检测值”的命名区域,那么下列代码将该区域内的字体加粗:

 

示例3:以命名区域为基准移动区域

下面的代码以名为“检测值”的区域为基础下移一行:

结果如下图所示:

 

示例4:以命名区域为基准扩展区域

下面的代码以名为“检测值”的区域为基础扩充一行:

结果如下图所示:


示例5:遍历命名区域

如下图所示的工作表,将单元格区域A2:A8命名,然后获取并遍历该命名区域。

代码如下:

说明

  • RefersToRange属性返回由命名区域指向的Range对象。

 

本文只是初步介绍了名称,在后续文章的示例中,会用到名称,并且会在专题系列中详细探讨名称的使用。

 


 

如果您对本文介绍的内容还有什么好的示例,欢迎发送邮件给我:xhdsxfjy@163.com

也可以在本文下方留言,提出您的看法或建议。

本文属原创文章,转载请联系我或者注明出处。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多