値をサブ関数に読み込み、条件付きループを実行してから、出力値をワークシートに出力しようとしています。しかし、私はいくつかの問題に直面しています。サブ関数 infiltPrint では、セルに印刷する値を取得できないようです。
Option Explicit
Dim dz() As Double
Dim WC() As Double
Dim fc() As Double
Dim NL, i As Integer
Dim sumdrain As Double
Dim infl As Double
Sub main()
Call InfiltRead
Call infilt
Call Infiltprint
End Sub
Sub InfiltRead()
Dim dz() As Double
Dim WC() As Double
Dim fc() As Double
Dim NL, i As Integer
Dim sumdrain As Double
sumdrain = 0
Dim infl As Double
'read inputs
NL = 10
infl = Cells(2, 1)
Application.ScreenUpdating = False
Worksheets("Sheet1").Activate
ReDim dz(NL)
ReDim WC(NL)
ReDim fc(NL)
For i = 1 To NL
dz(i) = Cells(1 + i, 3)
WC(i) = Cells(1 + i, 7)
fc(i) = Cells(1 + i, 5)
Next i
End Sub
Sub infilt()
Dim j As Integer
j = 1
While (infl > 0) And (j <= NL)
If infl > (fc(i) - WC(j)) * dz(j) Then
infl = infl - (fc(i) - WC(j)) * dz(j)
WC(j) = fc(i)
Else
WC(j) = WC(j) + infl / dz(j): infl = 0
End If
j = j + 1
Wend
If infl > 0 Then
sumdrain = sumdrain + infl
infl = 0
End If
End Sub
Sub Infiltprint()
Dim col As Double
Dim rw As Double
col = 7
For rw = 2 To 11
Cells(rw + 1, col).Value = WC()
Next rw
End Sub
「Cells(Row + 1, col) = WC()」という行でタイプの不一致が発生し続けます
おそらくこれが私のコードの唯一のエラーではないことはわかっています。率直に言って、潜入潜水艦から値を出力する方法がわかりません。サブメインを使ってみた...