Public zQQCancel As Boolean
'--------------------------------------------------
Option Explicit
'--------------------------------------------------
Sub zQCallingSub()
Call zQSubQ0(Array( _
Array("zQSubQ1", 1, Application, "String", Array(1, 2, 3, 4)), _
Array("zQSubQ2", 1, Application, "String", Array(1, 2, 3, 4)), _
Array("zQSubQ3", 1, Application, "String", Array(1, 2, 3, 4)), _
Array("zQSubQ4", 1, Application, "String", Array(1, 2, 3, 4)) _
))
End Sub
'--------------------------------------------------
Sub zQSubQ0(zQArgs As Variant)
Dim zQEach As Variant
For Each zQEach In zQArgs
If zQQCancel = True Then zQQCancel = False: Exit Sub
Select Case UBound(zQEach)
Case 0: Application.Run zQEach(0)
Case 1: Application.Run zQEach(0), zQEach(1)
Case 2: Application.Run zQEach(0), zQEach(1), zQEach(2)
Case 3: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3)
Case 4: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4)
Case 5: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4), zQEach(5)
Case 6: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4), zQEach(5), zQEach(6)
Case 7: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4), zQEach(5), zQEach(6), zQEach(7)
Case 8: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4), zQEach(5), zQEach(6), zQEach(7), zQEach(8)
Case 9: Application.Run zQEach(0), zQEach(1), zQEach(2), zQEach(3), zQEach(4), zQEach(5), zQEach(6), zQEach(7), zQEach(8), zQEach(9)
Case Else: MsgBox "!!!", vbCritical: Exit Sub
End Select
Next
Beep
End Sub
'--------------------------------------------------
'Running Subs are BTS.
zQSubQ0 (Вызывается zQCallingSub) - это «Application.Run» в подпунктах 1-4, пока где-то BTS zQQCancel = True.
Идея заключалась в том, что Я звоню zQSubQ0 с 4 Массивы вместо вызова 4 разных подпрограмм .
Таким образом, мне не нужно проверять "zQQCancel = True" в моем zQCallingSub ( каждый раз после Подпрограммы 1-4 называются).
Вопрос: есть ли способ уменьшить Select Case - ???
Интересно, каждый элемент моих массивов zQEach может быть помещен в каждый Запустить аргумент программно.