在没有循环的情况下为数组赋值

时间:2015-02-27 10:27:37

标签: arrays excel vba excel-vba

我使用以下代码为数组赋值。我为此使用For循环。有没有其他方法可用于我不必逐个单元地分配价值?

ReDim OccGroupELT(ELTRowNum, 14)
For i = 1 To ELTRowNum
    'year
    OccGroupELT(i, 1) = Sheets("main").Range("C15").Offset(i - 1, 0)
    'eventID
    OccGroupELT(i, 2) = Sheets("main").Range("C15").Offset(i - 1, 1)
    'loss
    For j = 3 To 14
        OccGroupELT(i, j) = Sheets("main").Range("C15").Offset(i - 1, j - 1).Value * (1 + Factor)
    Next j
Next i

更新 我应该使用下面的代码,而不是使用上面的代码,因为循环遍历每个单元比循环遍历数组更耗时?

    ReDim OccGroupELT(ELTRowNum, PerilCount)
    OccGroupELT = Sheets("Main").Range("ED14:EL" & ELTRowNum).Value

    ReDim OccGroupELT_Calc(ELTRowNum, PerilCount)
     For i = 1 to ELTRowNum
       OccGroupELT_Calc(i, 1) = OccGroupELT(i, 1) 
       OccGroupELT_Calc(1, 2) = OccGroupELT(i, 2) 
    Next i  
    For i = 1 to ELTRowNum
      For j = 3 to PerilCount+2
        OccGroupELT_Calc(i, j) = OccGroupELT(i, j) * (1 + ALEA)
      Next j
    Next i

0 个答案:

没有答案