Мне назначен проект для замены всех GoSubs
в приложении, основанном на VBA
, потому что это приложение переключается на VB.net
, и GoSubs
там не поддерживаются. Вот упрощенная версия исходного кода:
Sub Main ()
Dim A As String
...
If ConditionX Then A = "Black"
Else A = "White"
End If
...
GoSub Execute
...
Execute:
Call BuiltInSub1 (A)
Call BuiltInSub2 (A)
'where BuiltInSubs are some predefined procedures within the application
...
Return
End Sub
Я думаю об использовании Call
для замены GoSub
следующим образом:
Sub Main ()
Dim A As String
If ConditionX Then A = "Black"
Else A = "White"
End If
...
Call Execute
...
End Sub
Sub Execute ()
...
Call BuiltInSub1 (A)
Call BuiltInSub2 (A)
...
End Sub
Очевидная ошибка моей модифицированной версии выше заключается в том, что переменная A
не объявлена в Sub Execute
. Один из вариантов, который я могу придумать, - переопределить A
в Sub Execute
, но для этого мне нужно будет повторно объявить все переменные, используемые для определения A
в Main, где их довольно много.
Какой самый лучший / самый эффективный способ заменить GoSub
в моем случае?