VBA ::将范围结果传递到数组中

时间:2011-06-23 09:12:03

标签: arrays excel vba excel-vba for-loop

我目前正在研究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 个答案:

答案 0 :(得分:2)

您需要确定数组的尺寸;

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

最好使用0索引;

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

请注意,这是创建一个带有“gap”的数组,其中只填充符合条件的索引。