VBA ListObject使用宏时命名规则不一致(结尾加下划线)

VBA ListObject inconsistent naming rules when using a macro (puts underscores at endings)

您可以将您的 table 命名为 "my000",但不能将其命名为 "my001"。您也不能将其命名为 "bab002"、"lal0101" 或类似名称。

当使用宏创建和重命名 tables 时,我注意到有时它会在 table 名称(如 myt001)的末尾加上下划线,但没有正当理由。 Excel 提示名称不应与现有名称冲突,以数字开头或包含 space 或不允许的字符。我尝试的名称似乎完全正确,通过 Excel 将它们更改为例如 "my001_",扰乱了电子表格的其他部分。

要重现:打开空白 Excel,使用插入 -> table 创建一个空的 table,然后尝试将其命名为 "ba001" 或类似名称。当尝试对 vba 做同样的事情时,它会在末尾加上下划线 ("ba001_"),没有理由这样做。

我希望 vba 为 ListObjects 提供(假定的)正确名称。相反,它会在意想不到的情况下在结尾处加上下划线。

根据 Mikku 和 Maeaex1 所说的结论,table 名称的命名约定使得 vba 引用单元格 "BAB001" 由于忽略了其中的“00”名称字符串。

解决方案:更改与Excel的单元格命名约定不一致的命名约定,例如table名称字符串以下划线“_”开头,这也会带来额外的好处当您在 excel 中引用它时,当您开始并键入“=_”时,将出现所有 table 和命名范围的列表,而不是其他以相同字母开头的函数。