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,下次做更详细介绍。
欢迎关注、收藏和转发