如何 select Excel 中的所有名称与 VBA

How to select all names in Excel with VBA

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

我知道这可以通过 selecting "Apply names" 然后 select 从列表中定义的名称来实现。因为我有大约 2000 个定义的名称,所以我想从菜单中一次 select 所有名称,但我找不到选项,所以我必须一个一个地 select。我一直在寻找菜单上是否有启用多个 selection 的选项,但我没有找到这样的选项。 对我来说,解决方法是创建一个宏,该宏适用于 selected 范围的公式和 selected 名称。像这样:

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 年左右已经写了两倍),所以在宏代码中列出所有名称变得非常复杂。我认为可能的解决方法是创建一个列表,其中包含代码中所有已定义的名称。有人知道如何做到这一点吗?我环顾四周,一些代码建议使用循环,而另一些代码则表示可以提取列表。尽管如此,我还是没能找到办法。

它可能已经可供您使用。假设我们定义了名称 CostProfitTax

输入公式时,打开公式选项卡,您随时可以下拉这些名称:

有宏就好了,但我不知道如何在编辑过程中调用宏。

msdn.microsoft.com 的文档说

Names: An array of the names to be applied. If this argument is omitted, all names on the sheet are applied to the range.

https://msdn.microsoft.com/en-us/library/office/ff196578(v=office.15).aspx

接着试试这个:

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

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