Excel 是您的终极生产力工具。了解如何使用 VBA 在 Excel 中创建命名范围,并查找在处理数据和公式时节省时间的提示。
Microsoft Excel是一款功能强大的软件应用程序,可用于创建、跟踪和分析数据。除了 Excel 的标准功能外,您还可以创建 VBA 宏来自动执行某些任务。
您是否希望了解如何在 Excel 中创建命名范围和使用 VBA 宏?如果是这样,那么您来对地方了。在这篇博文中,我们将讨论如何使用 VBA在Excel中创建命名范围。
我们还将提供一些示例,说明您如何在自己的工作中使用命名范围。让我们开始吧!
Microsoft Excel 中的命名范围是什么?
使用命名范围而不是列/行引用,您可以引用具有自定义名称的单元格或单元格组。指定单元格内数据的能力是使用命名范围的一个巨大好处。
下面是一个简单示例,说明如何使用命名范围来判断运费是否计入产品价格:
= (B7 + B5 * C4) * (1 + A3)
=(ShippingCharge + ProductPrice * Quantity) * (1 + TaxRate)
如您所见,第二个选项让您立即了解产品价格是否包含运费。这使用户可以轻松理解公式的工作原理,而不必浪费时间查看单元格来弄清楚什么是什么。
如何在 Excel 中使用命名范围?
作为金融分析师,您可能需要尝试各种利率。从税率到预计通货膨胀率的任何事物都可以用作示例。您可以使用命名范围来组织很少修改的变量(例如月或年)或将长期保持不变的变量(例如通货膨胀率)。
以下是在 Excel 中使用命名范围时可能经常使用的常用名称列表:
报告日期
年
月
FcstID
税率
原始数据
如您所见,第二个选项让您立即了解产品价格是否包含运费。这使用户可以轻松理解公式的工作原理,而不必浪费时间查看单元格来弄清楚什么是什么。
这些只是一些可能性 - 您可以命名任何您想要的范围,这些范围符合 Excel 的命名范围规则。
创建唯一名称
创建命名范围轻而易举。您现在所要做的就是选择要引用的单元格,然后在名称框中键入名称。
因为您的名字不能包含任何空格,所以您必须将每个新单词的首字母大写或使用下划线 (_) 分隔术语。要完成命名范围的建立,请在键入名称后按 ENTER 键。
注意:任何使用名称框建立的命名范围都有一个工作簿范围。这意味着您的 Excel 文件中的任何工作表都可以访问命名范围。
使用名称管理器创建名称
如果您希望进一步自定义命名范围,您可以在名称管理器(公式选项卡 > 定义的名称组 > 名称管理器按钮)中更改和创建新的命名范围。
您应该知道名称管理器允许您:
更改已存在的命名范围的名称,
进行参考公式更改,
定义可以访问名称的工作表的范围。
现在您已经了解什么是命名范围以及如何创建命名范围,让我们看一些实际示例,了解如何在您的工作中使用它们。
如何使用命名范围的实例
示例 1:创建动态范围
动态范围是一个命名范围,它会自动调整以包括添加到工作表的新数据。当您的数据经常更改时,这是节省时间的好方法。
示例 2:创建 3D 范围
3D 范围是指多个工作表中数据的命名范围。如果您处理在多个工作表中以类似方式组织的大量数据,这可以极大地节省时间。
示例 3:创建命名数组
命名数组是一种引用值数组的动态范围。这是引用以表格格式组织的数据的好方法。
使用 VBA 宏自动命名范围
现在我们已经快速回顾了命名范围,让我们看看一些可以帮助您自动使用它们的 VBA 宏。
添加命名范围
下面的 VBA 代码演示了如何构造各种命名范围。
子名称范围_添加()
'目的:创建命名范围的各种方法
'来源:SoftwareKeep.com
将单元格调暗为范围
变暗为范围
将 RangeName 调暗为字符串
将 CellName 调暗为字符串
子名称范围_添加()
'目的:创建命名范围的各种方法
'来源:SoftwareKeep.com
将单元格调暗为范围
变暗为范围
将 RangeName 调暗为字符串
将 CellName 调暗为字符串
'单细胞参考(工作簿范围)
范围名称 = "价格"
手机名 = "D7"
设置单元格 = Worksheets("Sheet1").Range(CellName)
ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell
'单个单元格引用(工作表范围)
RangeName = "年份"
单元格名称 = "A2"
RangeName = "用户名"
手机名 = "L45"
设置单元格 = Worksheets("Sheet1").Range(CellName)
ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell, Visible:=False
结束子
遍历命名范围
下一个 VBA 宏代码演示了如何循环访问电子表格的命名范围。
子 NamedRange_Loop()
'目的:删除活动工作簿中的所有命名范围
'来源:SoftwareKeep.com
将 nm 调暗为名称
'循环遍历工作簿中的每个命名范围
对于 ActiveWorkbook.Names 中的每个 nm
调试.打印 nm.Name, nm.RefersTo
下一纳米
设置单元格 = Worksheets("Sheet1").Range(CellName)
Worksheets("Sheet1").Names.Add Name:=RangeName, RefersTo:=cell
'单元格范围引用(工作簿范围)
RangeName = "我的数据"
单元格名称 = "F9:J18"
设置单元格 = Worksheets("Sheet1").Range(CellName)
ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell
'秘密命名范围(不显示在名称管理器中)
子 NamedRange_Loop()
'目的:删除活动工作簿中的所有命名范围
'来源:SoftwareKeep.com
将 nm 调暗为名称
'循环遍历工作簿中的每个命名范围
对于 ActiveWorkbook.Names 中的每个 nm
调试.打印 nm.Name, nm.RefersTo
下一纳米
'遍历特定工作表范围内的每个命名范围
对于工作表中的每个纳米(“Sheet1”)。名称
调试.打印 nm.Name, nm.RefersTo
下一纳米
结束子
删除所有命名范围
此 VBA 函数将帮助您清除项目中不再需要的 Excel 中的大量命名范围。
子 NamedRange_DeleteAll()
'目的:删除 ActiveWorkbook 中的所有命名范围(打印区域可选)
'来源:SoftwareKeep.com
将 nm 调暗为名称
Dim DeleteCount 一样长
'也删除 PrintAreas 吗?
UserAnswer = MsgBox("你想跳过打印区域吗?", vbYesNoCancel)
如果 UserAnswer = vbYes 那么 SkipPrintAreas = True
如果 UserAnswer = vbCancel 然后退出 Sub
子 NamedRange_DeleteAll()
'目的:删除 ActiveWorkbook 中的所有命名范围(打印区域可选)
'来源:SoftwareKeep.com
将 nm 调暗为名称
Dim DeleteCount 一样长
'也删除 PrintAreas 吗?
UserAnswer = MsgBox("你想跳过打印区域吗?", vbYesNoCancel)
如果 UserAnswer = vbYes 那么 SkipPrintAreas = True
如果 UserAnswer = vbCancel 然后退出 Sub
'错误处理程序,以防删除函数出错
出错时转到跳过
'遍历每个名??字并删除
对于 ActiveWorkbook.Names 中的每个 nm
如果 SkipPrintAreas = True And Right(nm.Name, 10) = "Print_Area" Then GoTo Skip
'错误处理程序,以防删除函数出错
出错时转到跳过
'删除命名范围
nm.删除
删除计数 = 删除计数 + 1
跳过:
'重置错误处理程序
错误转到 0
下一个
'报告结果
如果 DeleteCount = 1 那么
MsgBox “[1] 姓名已从此工作簿中删除。”
别的
MsgBox "[" & DeleteCount & "] 个姓名已从此工作簿中删除。"
万一
结束子
删除有错误的命名范围
此 VBA 代码将仅删除有错误的命名范围。这些问题可能是由删除工作表或行/列引起的。
子 NamedRange_DeleteErrors()
'目的:删除 ActiveWorkbook 中所有带有#REF 错误的命名范围
'来源:SoftwareKeep.com
将 nm 调暗为名称
Dim DeleteCount 一样长
'遍历每个名??字并删除
对于 ActiveWorkbook.Names 中的每个 nm
如果 InStr(1, nm.RefersTo, "#REF!") > 0 那么
'错误处理程序,以防删除函数出错
出错时转到跳过
'删除命名范围
nm.删除
删除计数 = 删除计数 + 1
万一
跳过:
'重置错误处理程序
错误转到 0
下一个
'报告结果
如果 DeleteCount = 1 那么
MsgBox “[1] 错误名称已从此工作簿中删除。”
别的
MsgBox "[" & DeleteCount & "] 错误名称已从此工作簿中删除。"
万一
结束子
长话短说
命名范围是在 Excel 中组织数据的好方法。
您可以使用它们来创建动态范围、3D 范围和命名数组。
您还可以通过 VBA 宏自动使用命名范围。
结论,Excel 是一个了不起的工具,它可以通过大量的自动化功能使最平凡的任务变得令人兴奋。如果你想让你的生活更轻松,学习如何使用 VBA 命名范围等高级工具是一个很好的开始。我们希望本文能帮助您更多地了解如何在 Excel 中使用命名范围。一如既往,如果您有任何疑问,请随时在下方给我们留言!