在excel中可以通过定义名称的方式给单元格区域取别名,这些别名可以用于函数公式中。
除了通过定义名称的方式,当插入“表格”后也会自动添加名称。
除了可见的名称以外,还有一些内置的不可见名称如 Database, Print_Area, 或者 Auto_Open等。
在vba中Name对象表示名称管理器中的名称。所有的名称组成了Names集合对象。
Application、Workbook、 Worksheet 对象都可以返回Name对象。
如果要遍历当前工作簿中的所有名称,可以使用如下的代码
以下的代码将遍历所有名称,并删除定义的名称。
Sub QQ1722187970()
Dim oName As Name
For Each oName In Excel.ActiveWorkbook.Names
With oName
If .Visible = True Then
Debug.Print .Name, .RefersTo, .RefersToLocal
'删除所有的名称
.Delete
End If
End With
Next
End Sub
如果要给工作簿中添加名称,可以使用Names对象的Add方法,代码如下:
Sub QQ1722187970()
Dim oWK As Worksheet
Dim oRng As Range
Set oWK = Excel.ActiveSheet
Dim sText As String
sText = """" & Join(Array("a", "d", "c"), ",") & """"
Dim oName As Name
'新增一个名称,名称的值为一个字符串
Set oName = Excel.ThisWorkbook.Names.Add(Name:="MyName", RefersTo:="=" & sText)
End Sub


发表评论