Поместите КАЖДЫЙ элемент массива в КАЖДЫЙ аргумент Sub - PullRequest
0 голосов
/ 03 мая 2020
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 может быть помещен в каждый Запустить аргумент программно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...