如何使用VBA在Excel中select所有名称

我正在处理一个大的Excel文件,我已经定义了大约2000个单元格的名字。 另外,excel包含公式,这些公式已经input并引用单元格( A23-B24 )。 我想通过定义的名称更改单元格引用(而不是A23-B24具有VARIABLE_100-VARIABLE_120 )。

我知道这是可能的select“应用名称”,然后从列表中select定义的名称。 因为我有大约2000个定义的名字,我想从菜单中一次select所有的名字,但是我找不到一个选项,所以我必须一一select。 我一直在寻找是否有一个选项,使菜单上的多重select,但我还没有find这样的选项。 对我来说,解决方法是创build一个适用于所选公式的选定范围的macros。 像这样的东西:

 Sub Macro1() ' Macro1 Macro Selection.ApplyNames Names:=Array ("ATL_BV_XP", "ATL_BV_XP..EUN", "ATL_PK_XP", _ "ATL_PK_XP..EUN", "CHN_PK_IM", "CHN_PK_IM..EUN", "CHN_PK_IM..SHREUN", _ "E15_AG_AH", "E15_AG_EPA", "E15_AG_SFP", "E15_AG_SFP..CF" _ , "E15_APF_FE"), IgnoreRelativeAbsolute:=True, UseRowColumnNames:=True, _ OmitColumn:=True, OmitRow:=True, Order:=1, AppendLast:=False End Sub 

我的问题是,因为我有大量的定义名称(已经写了2000年左右的两倍),在macros代码中列出所有名称变得非常复杂。 我认为可能的解决方法是创build一个列表,包括代码中的所有定义的名称。 有人有一个想法如何做到这一点? 我有四处看看,一些代码build议一个循环,而其他人说可能提取一个列表。 尽pipe如此,我还没有find办法做到这一点。

msdn.microsoft.com文件说

名称:要应用的名称数组。 如果省略此参数,则表单上的所有名称都将应用于范围

请参阅https://msdn.microsoft.com/zh-cn/library/office/ff196578(v=office.15).aspx

下面试试这个:

 Selection.ApplyNames _ IgnoreRelativeAbsolute:=True, UseRowColumnNames:=True, _ OmitColumn:=True, OmitRow:=True, Order:=1, AppendLast:=False 

这应该取决于所Defined Names Scope及其可见性。 试试看,让我们知道结果。

它可能已经提供给你。 假设我们已经定义了名称成本利润税收

input公式时,请打开“ 公式”选项卡,并始终可以将这些名称拉下来:

在这里输入图像说明

macros将是很好,但我不知道如何在编辑中调用macros。