我最近遇到过这种情况,如果有更简单的方法可以做到这一点,我只是很好奇......
With Activeworkbook 'Do Stuff With .Sheets(1) 'More stuff Done '... 'But now I need to refer to or pass the Sheet in the last With Statement SomeFunctionAnswer = SomeFunction Activeworkbook.Sheets(1) End With 'Yet more stuff Done End With
它是否必须完全写出来,或者是否有某种方式来表示它更容易/更清洁?也许有某种属性或方法可以为这个实例传递自己的东西?如何从更高的位置引用属性或方法?
SomeFunctionAnswer = SomeFunction .Self '??? 'OR SomeFunctionAnswer = SomeFunction .Parent.Name '???
希望有道理......
答案很简单,没有.
该With
条款有助于访问其主题的成员和方法,但它没有提供任何参考该主题本身的便利.当需要时,您必须完全写入对象的名称或通过其他方式引用它.
在访问作为外部 With
子句主题的对象的方法和成员时,还需要完全命名它.内With
,并为整个其范围,完全隐藏了外With
.
因此,编写代码的方式是正确的方法.