У меня есть некоторый код, который использует 5 различных констант (FC), которые я хотел бы вместо этого использовать среднее их число, которое я мог бы вычислить в ячейке в Excel.
Если есть какие-либо другие явные ошибки илиулучшения, которые могут быть сделаны, они будут очень признательны.
Dim rainfall(), evaporation(), obs_q(), FC() As Double
Dim available_w(), overflow(), interflow() As Double
Dim ccrain, ccevaporation, i, j As Integer
'amount of data
Do
m = Worksheets("Hydrological_Data").Cells(6 + n, 2)
If m <> "" Then
n = n + 1
Else
Exit Do
End If
Loop
ReDim rainfall(n + 1), evaporation(n + 1), obs_q(n + 1) As Double
For i = 0 To n - 1
obs_q(i) = Worksheets("Hydrological_Data").Cells(6 + i, 3)
rainfall(i) = Worksheets("Hydrological_Data").Cells(6 + i, 4) * (1 + ccrain / 100)
evaporation(i) = Worksheets("Hydrological_Data").Cells(6 + i, 5) * (1 + ccevaporation / 100)
Next i
'initial conditions
ReDim available_w(n - 1, 5), overflow(n - 1, 5), interflow(n - 1, 5) As Double
available_w(0, 1) = FC(1) + rainfall(0) - evaporation(0)
available_w(0, 2) = FC(2) + rainfall(0) - evaporation(0)
available_w(0, 3) = FC(3) + rainfall(0) - evaporation(0)
available_w(0, 4) = FC(4) + rainfall(0) - evaporation(0)
available_w(0, 5) = FC(5) + rainfall(0) - evaporation(0)
For j = 1 To 5
If available_w(0, j) > FC(j) Then
overflow(0, j) = available_w(0, j) - FC(j)
available_w(0, j) = FC(j)
Else
overflow(0, j) = 0
End If
If available_w(0, j) > 0 Then
interflow(0, j) = available_w(0, j) * a
Else
interflow(0, j) = 0
End If