Вопрос: Более эффективно хранить kmatch(c)
в e
и использовать e
?Пожалуйста, объясните, почему для ответов.
Справочная информация: При поиске экономии времени для выполнения кода, на ум пришел следующий вопрос для кода ниже.
Информациядля размеров массивов: kmatch()
хранит данные от 1 до последней строки таблицы Excel для 1 столбца.Обычно он содержит несколько тысяч строк, и kmatch
и outputc
определены ранее в подпрограмме как варианты
Текущий код:
For c = 1 To UBound(kmatch, 1)
If kmatch(c) <> 0 Then
outputc(c, 1) = Abs(Other_array1(kmatch(c), 1))
outputc(c, 2) = Abs(Other_array2(kmatch(c), 1))
outputc(c, 3) = Abs(Other_array3(kmatch(c), 1))
outputc(c, 5) = Other_array4(c, 1)
If (Abs(Other_array5(kmatch(c), 1)) - Abs(Other_array6(kmatch(c), 1))) > 0 Then
outputc(c, 4) = Abs(Other_array5(kmatch(c), 1)) - Abs(Other_array6(kmatch(c), 1))
Else
outputc(c, 4) = 0
End If
For b = 1 To 5
outputc(c, 6) = outputc(c, b) + outputc(c, 6)
Next b
Other_array7(c, 1) = Other_array8(kmatch(c), 1)
Else
For b = 1 To 6
outputc(c, b) = 0
Next b
End If
Next c
Планируемый код:
For c = 1 To UBound(kmatch, 1)
e = kmatch(c)
If e <> 0 Then
outputc(c, 1) = Abs(Other_array1(e, 1))
outputc(c, 2) = Abs(Other_array2(e, 1))
outputc(c, 3) = Abs(Other_array3(e, 1))
outputc(c, 5) = Other_array4(c, 1)
If (Abs(Other_array5(e, 1)) - Abs(Other_array6(e, 1))) > 0 Then
outputc(c, 4) = Abs(Other_array5(e, 1)) - Abs(Other_array6(e, 1))
Else
outputc(c, 4) = 0
End If
For b = 1 To 5
outputc(c, 6) = outputc(c, b) + outputc(c, 6)
Next b
Other_array7(c, 1) = Other_array8(e, 1)
Else
For b = 1 To 6
outputc(c, b) = 0
Next b
End If
Next c