2013-02-14 273 views
0

在行If infl > (fc - WC(j)) * dz(j) Then我不斷收到錯誤「類型不匹配」,它突出顯示行中的-。我現在知道什麼會導致這個錯誤?Excel VBA類型不匹配

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 infilt() 
    Dim j As Integer 
    j = 1 

    While (infl > 0) And (j <= NL) 
    If infl > (fc - WC(j)) * dz(j) Then 
     infl = infl - (fc - WC(j)) * dz(j) 
     WC(j) = fc 
    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 

回答

3

fc是一個數組。你不能從中減去。你可能意思是fc(something)

+0

fc是一個數組,但我想從數組中逐個減去個別數字。你對我將如何修改代碼有任何建議嗎? – user1977802 2013-02-14 22:26:23

+0

yep ...看起來像一個錯字...你可能會考慮擴大你的變量名(除了迭代器),以便更容易看到那種錯誤 – andrew 2013-02-14 22:26:41

+0

如果我用fc替換所有fc(i)我不再得到錯誤。謝謝 – user1977802 2013-02-14 22:34:52