vba - 以编程方式分配 Bang 参数?

标签 vba excel

如果没有对其参数进行硬编码,即 Me.VBProject.References!Excel,我无法成功使用 Bang (!) 运算符。在此示例中,Excel 引用是硬编码的。 出于沮丧,我尝试了所有我能想到的排列来尝试利用它:

[Me.VBProject.References!(str)]
[Me.VBProject.References! & (str)]
["Me.VBProject.References!" & str]
["Me.VBProject.References!" & (str)]

以及更多添加括号以确保正确预评估的内容,包括普通的 Application.evaluate 方法。纳达!

最佳答案

不,你不能这样做。

bang 运算符只是调用对象的默认成员的快捷方式,并将 bang 后面的文本作为字符串传递给默认成员的第一个参数:

爆炸符号:

Me.VBProject.References!Excel

完全等同于:

Me.VBProject.References.Item("Excel")

而且,因为它是默认成员,所以您可以省略 Item 函数调用:

Me.VBProject.References("Excel")

所以,要使用你的(名字真的很糟糕的)变量str:

str = "Excel"
Debug.Print Me.VBProject.References.Item(str).Name

关于vba - 以编程方式分配 Bang 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43242985/

相关文章:

vba - 通过反射解析VBA模块函数参数

excel - #值(value)!具有命名范围 vlookup 的 vba 函数出错

vba - 清除未 protected 单元格的按钮

Excel:查找所有匹配值并将其放入逗号分隔列表中?

Excel VBA : Setting a Workbook-level default save directory

excel - 尝试通过将行移动到相邻列来抓取数据透视结果

c# - 从 .NET 生成带有图表的 excel

vba - 替换文本框中的文本

VBA代码未填写日期

java - 我应该如何转义 CSV 文件中的逗号和语音标记,以便它们在 Excel 中工作?