循环代码/跳过行

时间:2009-11-23 16:05:50

标签: excel vba

我在一段VBA代码中有以下内容:

For i = 1 To 5
    myArray(i) = i + 0
Next i
For i = 6 To 8
    myArray(i) = i + 1
Next i
For i = 9 To 14
    myArray(i) = i + 2
Next i

...等

必须有更好的方法来做到这一点,但对于我的生活,我想不出一个。有人可以帮忙吗?也许是Select..Case语法?

编辑:这些实际上应该是公司各个区域的子部门。我正在“跳过”的行自动计算出所述区域的总和。

2 个答案:

答案 0 :(得分:2)

由于您正在跳过的行不均匀,并且从它的声音可能会发生变化,您可能不希望在Select语句的多行中对它们进行硬编码。在Array中记录它们可能更容易:

'Create an Array of Rows to Skip
rowsToSkip = Array(6, 9)

'Loop over all data
For i = 1 To 14
    skipcount = 0

    'For each skip row we have passed add one to the skipcount
    For Each rownum In rowsToSkip
        If i >= rownum Then
            skipcount = skipcount + 1
        End If
    Next rownum

    myArray(i) = i + skipcount
Next i

答案 1 :(得分:0)

For i = 1 to 14
    select case i
        case 1 to 5
            myArray(i) = i + 0
        case 6 to 8
            myArray(i) = i + 1
        case 9 to 14
            myArray(i) = i + 2
    end select 
Next i