如何在我的VBA项目名称中添加空格?

时间:2012-05-18 15:23:52

标签: vba excel-addins

我有一个我在VBA中写过的Excel加载项,我们称之为MyAddin.xlam 我已将项目名称设为MyAddin

当我打开第二个项目并选择Tools->References...时,MyAddIn看起来很好。一切正常。那很棒。

但是......出于纯粹的审美原因,我希望列表在参考列表中显示为My Addin。 潜在参考列表中的所有可用内容在名称中都有空格 但是如果我尝试重命名我的项目以在名称中留一个空格,VBA不允许我这样做。

所以,问题听起来很愚蠢,有没有什么方法可以在“参考”列表中显示我的VBA加载项的显示名称?

我非常愿意接受答案“这在VBA中是不可能的;如果你用另一种语言构建加载项,你只能在引用名称中添加空格”,但我想知道我是不是遗漏了一些简单的东西。

谢谢!

编辑,附录:基本上,我的问题是:是否有办法让“显示的名称”与项目名称不同,后者不关心文件名/对象命名限制?

2 个答案:

答案 0 :(得分:2)

是的,你是对的。 VBA不允许您在“属性”窗口的“项目名称”中插入空格。

如果你尝试,它会给你一个错误(见快照)

enter image description here

不用VB.net也好运。我添加了空格,并将其转换为Excel中的下划线。让我测试一下,然后再回复你......

<强>快照

enter image description here

<强>后续

终于来了!是的,它可以在VB.Net中使用。如果您想了解更多详情,请告诉我?

enter image description here

答案 1 :(得分:1)

您可以通过编辑Title内置文档属性来更改加载项窗口中显示的显示名称,但这对参考窗口中的名称没有帮助

VBE不允许您在模块名称的项目名称中使用非法字符,但这并不意味着无法完成。

例如,Analysis Toolpak - VBA加载项ATPVBAEN.XLAM的项目名称为atpvbaen.xls,其中包含所谓的非法字符.

同样,同一个项目有一个名为VBA Functions and Subs的模块,其中包含非法(空格)字符。

但Analysis Toolpak中的公共过程仍然可以使用方括号来调用。

Sub test()

  'Run the auto_open macro in Analysis Toolpak
  [atpvbaen.xls].[VBA Functions and Subs].auto_open

End Sub

因此Microsoft知道如何在项目和模块名称中使用非法字符,这可能是在二进制文件中或使用特殊版本的VBE完成的。

修改

我刚刚编辑了VBA项目的二进制文件,并且能够在VBA项目名称中添加空格!

有趣的是,您无法从Analysis Toolpak导出然后重新导入模块,因为VBE仍会在导入时强制执行命名规则。祝你好运与Source Control合作。

编辑:2017年2月3日 从VBA文件格式规范:[MS-OVBA]

  

[模块名称] 应该是标识符... MAY 是任何字符串... 必须小于或等于到31个字符。

     

[项目名称] 应该是一个标识符... MAY 是任何字符串... 必须小于或等于长度为128个字符。

所以似乎VBE正在强加 SHOULD 规则,但如果你能够编辑项目二进制文件,VBA实际上更宽松。