VBA“With object”语法 - 你能引用对象本身吗?

时间:2015-06-25 14:43:15

标签: vba

当我用一个对象做一堆不同的东西时,我经常使用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

2 个答案:

答案 0 :(得分:1)

不,没有。您只需使用对象本身,就像在代码中一样。

答案 1 :(得分:0)

我意识到这是一个过时的帖子,但是我认为这可能对其他寻求解决方案的人有所帮助。实际上,我已经使用了一些解决方法。它不像拥有“ Me”之类的东西(在这里不起作用)那样好,但是它可以提供帮助。

您可以使用set语句将对象分配给一个临时变量,该变量可以在With语句中使用,如以下示例所示(使用上面的原始示例):

set s= obj with s f s end with

变量s可以是您想要的任何短名称,因为它的作用类似于变量。当您有一个较大的对象规范代替obj时,这很方便。希望这对某人有帮助。