咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

NO.1

定义名称,在Excel应用中是一个很方便的快捷的使用方法。

对于一些只懂得基本操作的人来说,可能显得比较陌生,但是掌握了这个功能,可以做到事半功倍。

同时也会大大地增强表格对于公式的应用效率。

此篇文章就以新建名称为例,介绍一下CreateNames方法的使用。

NO.2

定义名称方法

定义名称是Range对象下面的一个方法。

表达式:

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

创建名称后可以在名称管理器当中查找和修改。

其参数说明请看下图,不具体赘述了。

CreateNames 参数

NO.3

定义名称实际上是将一些重复使用的公式、常量作为一个模板进行引用。

如有些数据是动态的,随着改变名称内容相应的引用了的单元格内容也会改变。

这样就省去了很多修改的操作,极大提高了工作效率,节省工作时间,也减少了数据修改过程中发生的错误。

此例中,通过对表格中第二行第二列到第二行第N列进行名称定义,其中内容可自由设为。

单击新建按钮之后自动新建名称,并添加到ListBox列表框中。

单击删除名称按钮,将所有名称删除,并清除ListBox列表框内容。

注意:

通常在应用名称的时候,以一个单元格内容进行引用,比如某个单元格内以公式进行保存,或单个常量,就不能是多个单元格来作为名称内容。

当作为列表序列引用的时候才可以是多个单元格内容。

NO.4

按钮代码

Private Sub CommandButton1_Click() Application.DisplayAlerts = False '创建名称 Dim x As Variant For Each x In getRange(2) With x .CreateNames Top:=True'创建名称 End With Next x MsgBox "名称定义成功!", vbInformation, "提示" setListBox Application.DisplayAlerts = True End Sub

名称数组

getRange()函数功能是返回要定义名称的单元格数组

Private Function getRange(iRow As Integer) As Variant '取列Range数组 Dim R() As Range, s As Integer Dim w As Worksheet Set w = ActiveSheet Dim ic As Variant For Each ic In getColumn(iRow) If VBA.Len(ic) = 0 Then GoTo Ne100 ir = w.Cells(Cells.Rows.Count, ic).End(xlUp).Row If ir > 1 Then ReDim Preserve R(s) Set R(s) = w.Range(w.Cells(iRow, ic), w.Cells(ir, ic)) s = s + 1 End If Ne100: Next ic getRange = R End Function

获得列号数组

getColumn函数是一个容错处理,当要定义名称单元格第一行为空或数字时,不返回这一行内容。

如果不好理解,这个可以忽略不考虑。

Private Function getColumn(iRow As Integer) '取第iRow行非空列号,返回数组 Dim w As Worksheet Set w = ActiveSheet Dim ic As Integer ic = w.Cells(iRow, Cells.Columns.Count) _ .End(xlToLeft).Column MsgBox ic Dim x As Integer, cArr, j As Integer ReDim cArr(1 To ic) For x = 1 To ic If VBA.Len(w.Cells(iRow, x)) <> 0 Then If Not VBA.IsNumeric(w.Cells(iRow, x)) Then ReDim Preserve cArr(j) cArr(j) = x j = j + 1 End If End If Next x getColumn = cArr End Function

删除名称

对此函数不是熟悉建议不要在自己的Excel表中使用,可能误删除表格中已经定义名称。

Private Sub DeleteNames() '删除名称 Dim rangName As Object For Each rangName In ThisWorkbook.Names rangName.Delete Next rangName MsgBox "当前名称全部删除!", vbInformation, "删除" End Sub


NO.5

定义名称在Excel操作当中十分简单,多次练习之后就熟悉了,对于代码操作来说只有针对相应实例才有意义。

本例只作为一个简单创建方法介绍,使用创建后的名称才是真正需要的实际应用。

其方法是:ApplyNames,下次做更详细介绍。

欢迎关注、收藏和转发