在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
发表评论