当我用一个对象做一堆不同的东西时,我经常使用With对象语法。它是调用对象属性/方法的有用简写,而不必混淆重用对象名称的代码。但是有时我想调用一个函数,该函数将对象本身作为参数。在这种情况下有没有办法引用该对象?
' Class Module
' Class1
' Code Module
Sub f(byref obj as Class1)
End Sub
Sub test()
Dim obj as Class1: set obj = new Class1
With obj
f Me ' Doesn't work - can you refer to obj in this context?
f obj ' Works but I don't like it when the object has a long name
End With
End Sub
答案 0 :(得分:1)
不,没有。您只需使用对象本身,就像在代码中一样。
答案 1 :(得分:0)
我意识到这是一个过时的帖子,但是我认为这可能对其他寻求解决方案的人有所帮助。实际上,我已经使用了一些解决方法。它不像拥有“ Me”之类的东西(在这里不起作用)那样好,但是它可以提供帮助。
您可以使用set语句将对象分配给一个临时变量,该变量可以在With语句中使用,如以下示例所示(使用上面的原始示例):
set s= obj
with s
f s
end with
变量s可以是您想要的任何短名称,因为它的作用类似于变量。当您有一个较大的对象规范代替obj时,这很方便。希望这对某人有帮助。