如果没有硬编码参数,即 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/