一位朋友让我看看这个页面,并注意到一个论坛用户的签名中有一段奇怪的代码.
代码是一个单行,如下所示:
On Local Error Resume Next: If Not Empty Is Nothing Then Do While Null: ReDim i(True To False) As Currency: Loop: Else Debug.Assert CCur(CLng(CInt(CBool(False Imp True Xor False Eqv True)))): Stop: On Local Error GoTo 0
Run Code Online (Sandbox Code Playgroud)
滚动删除:
关于本地错误恢复下一个:如果不为空则没有,然后做空:ReDim i(真假)作为货币:循环:其他Debug.Assert CCur(CLng(CInt(假冒错误真Xor假Eqv真))) ):停止:On Local Error GoTo 0
相当令人兴奋的是,代码编译(我没有尝试运行它,但这是无关紧要的)如果你只是按原样粘贴它(然后再不要再触摸它!)到一个有效的程序级范围.
一些观察:
On Local Error 可以简化为 On ErrorDebug.Assert True会使代码一致地编译,因此其中的某些东西会弄乱编译器.Local在VBE验证了行之后以任何方式修改它(甚至只是删除),它就会停止编译,似乎没有任何东西让VBA理解它,除非该行被删除并重新粘贴.问题是,这段代码如何根据VB语言规范进行编译?这是VB [6 | …