Создать массив, содержащий несвязанные диапазоны номеров VBA - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь найти лучшее решение этой проблемы, чем у меня правильно, я пытаюсь записать каждое число между диапазонами ниже в один массив, который я затем могу зациклить позже.

Проблема с тем, как у меня сейчас написано, заключается в том, что «Account_Range_Start» и «Account_Range_End» будет трудно поддерживать, если количество диапазонов счетов увеличивается, и если оно должно быть кем-то изменено, кроме меня, это может вводиться неправильно.

Вот то, что у меня сейчас есть

Dim Account_Range_Start As Variant
Dim Account_Range_End As Variant
Dim AR As Integer
Dim Accounts As Variant
Dim Size As Long
Dim i As Long

'Establish ranges start and end
Account_Range_Start = Array(26240000, 26260000, 26290000, 40000000, 40100000, 40500000, 40600000)
Account_Range_End = Array(26249999, 26269999, 26299999, 40099999, 40199999, 40599999, 40699999)


For AR = 0 To UBound(Account_Range_Start)
    'Checks if this is the first time writing to the array
    If IsEmpty(Accounts) Then
        ReDim Accounts(1 To Account_Range_End(AR) - Account_Range_Start(AR) + 1) As Long

        For i = 1 To UBound(Accounts)
        Accounts(i) = Account_Range_Start(AR) + (i - 1)
        Next i
    Else
        Size = UBound(Accounts)

        ReDim Preserve Accounts(1 To Size + Account_Range_End(AR) - Account_Range_Start(AR) + 1) As Long

        For i = Size + 1 To UBound(Accounts)
        Accounts(i) = Account_Range_Start(AR) + (i - Size - 1)
        Next i
    End If

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