VBA :: Передача результатов диапазона в массив - PullRequest
0 голосов
/ 23 июня 2011

В настоящее время я работаю над функцией поиска в VBA, которая будет извлекать результаты из искомого диапазона и вводить адрес ячейки в массив.

Я попытался настроить массив с помощью следующего кода.

Dim FindRange1 as Range
Dim Find1 as Range
Dim Results1() as Variant
Dim R1 as integer
Dim Max as integer

Max = Range("E7:E1000").Cells.Count

       Set FindRange1 = Worksheets("Properties").Range("P7:P1000")
            If ILsearch.P1B1.Value = True Then
                For R1 = 1 To Max
                    For Each Find1 In FindRange1
                        If (Find1.Value < TextBox1) And (Find1.Value > "0") Then
                            Results1(R1) = Find1.Address
                        End If
                    Next Find1
                Next R1
            End If

1 Ответ

2 голосов
/ 23 июня 2011

Вам нужно измерить массив;

redim Results1(Max) '//this will leave an empty Results1(0)

Лучше использовать индекс 0;

redim Results1(Max-1) 
...
Results1(R1 - 1) = Find1.Address

Обратите внимание, что это создает массив с "пробелами", где только индексы, которыесоответствовать вашим критериям заполнены.

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