Ниже приведен фрагмент кода, который я пишу, который пытается сравнить диапазон в начале процесса (записанный в глобальном массиве в событии активации листа) с тем же диапазоном, когда лист деактивирован.
Вот код активации:
Private Sub Worksheet_Activate()
garr_Agency = Array(Range("rng_Lst_Agencies").Value2) 'rng_Lst_Agencies is a 1D column.
End Sub
А вот и деактивация:
Private Sub Worksheet_Deactivate()
Dim arr_Agency() As Variant
Dim rng_Agency As Range
Dim lng_Agencies As Long
Dim lng_i As Long
Set rng_Agency = Range("rng_Lst_Agencies")
arr_Agency = Array(rng_Agency.Value2)
lng_Agencies = rng_Agency.Cells.Count
lng_i = 1
Do Until lng_i = lng_Agencies + 1
If arr_Agency(0)(lng_i, 1) <> garr_Agency(0)(lng_i, 1) Then
*rest of the code*
Я бы подумал, что могу просто использовать:
If arr_Agency(lng_i, 1) <> garr_Agency(lng_i, 1) Then
но я получаю ошибку "Subscript out of range".
Зачем мне нужно добавлять дополнительные "(0)"?Из окна местных жителей выглядит так, как будто я создал массив внутри массива где-то вдоль линии, но я не понимаю, как.
Большое спасибо.