我在一段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语法?
编辑:这些实际上应该是公司各个区域的子部门。我正在“跳过”的行自动计算出所述区域的总和。
答案 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