在Excel VBA Basic中使用for循环附加到数组中

问题描述 投票:3回答:1

如何使用IF语句遍历工作表,并将每个TRUE附加到数组?

基本示例,如果Cells(y, 1).Value大于0,则将1追加到数组中,并在给定范围内这样做,以创建具有多个值1的数组(给定多个Cells(y,1)。Value(s)为大于0)。

这是我之前创建循环的方式。

For y = 2 To LastRow

    On Error Resume Next
    If Cells(y, 1).Value > 0 Then   
        Cells(y, 2).Value = 1     ' Instead of populating Cells(y,2) with "1" IF true, I want to append the value to an array
    ElseIf Cells(y, 1).Value = 0 > 0 Then 
        Cells(y, 2).Value = 2
    Else
        Cells(y, 2).Value = 0
    End If

Next y
excel vba append
1个回答
3
投票

您必须先为数组标注维数

Dim myArray() as Integer

并且在循环中,跟踪数组将包含的元素数量

Dim myCount as Integer

然后在循环中,您必须递增此计数器并重新排列数组,以便可以对其进行添加

If Cells(y, 1).Value > 0 Then   
    myCount=myCount+1
    Redim Preserve myArray(1 to myCount)
    myArray(myCount)=1

Preserve保留字很重要,因为它可以防止在向数组添加项目时重新初始化数组的内容。

© www.soinside.com 2019 - 2024. All rights reserved.