提问人:aik3e 提问时间:1/21/2023 更新时间:1/21/2023 访问量:32
如何在VBA中使用显式选项正确定义相互连接的递归子例程?
How to properly define interconnected recursive sub routines with option explicit in VBA?
问:
在我完成以下代码后,我发现 VBA 不喜欢嵌套子例程,现在我不知道如何在尊重 Option Explicit 语句的同时定义彼此外部的子例程,并在彼此之间正确调用其他子例程,同时还尊重递归调用的堆栈溢出预防的计数器。
Option Explicit
Sub OuterSub(counter As Integer)
' Code
Sub InnerSubA(rng As Range, prompt As String)
'Code
' Run outersub recursively
OuterSub (counter + 1) ' Counter to prevent stack overflow
'Code
End Sub
' Code
' Run 1st Inner sub
InnerSubA rng, prompt
' Code
Sub InnerSubB(counter As Integer)
' Code
' Recursively call itself
InnerSubB (counter + 1) ' Counter to prevent stack overflow
' Code
' Run InnerSubA
InnerSubA rng, prompt
'Code
End Sub
' Run 2nd Inner Sub
InnerSubB 0
'Code
End Sub
Sub main()
' Run OuterSub
OuterSub 0
End Sub
我尝试在外部子定义内部子,但意识到它可能不起作用,因为我想尊重 Option Explicit 语句,并且由于内部子调用外部子,反之亦然,我不知道我应该按哪个顺序定义它们。这有点像先有鸡还是先有蛋的情况。此外,计数器在递归调用中递增,如果内部子的定义在外面,我不确定如何维护它们。
答: 暂无答案
评论