2013-07-10 68 views
0

*指示excel在出現錯誤時突出顯示的位置。如果我把第一條命令放在我的else語句之後(在同一行),它將運行一次。然後在第二次運行時出現相同的錯誤。然後我把它放在下一行,並再次出錯。請幫忙。運行時錯誤'13'類型不匹配:Excel if else statment

Sub Average_Var_Page() 
Z = 6 
PS1 = 0 
PS = 0 

Do 
If Application.Worksheets("EachStepVar").Range("E" & Z).Value = 0 Then 
    GoTo ZPLUSPS 
Else 
***PS = PS + Application.Worksheets("EachStepVar").Range("E" & Z).Value**** 
    PS1 = PS1 + 1 
End If 

ZPLUSPS: 
Z = Z + 1 

Loop Until IsEmpty(Application.Worksheets("EachStepVar").Range("E" & Z)) 

X = PS/PS1 
Application.Worksheets("EACHsTEPVAR").Range("P1").Value = X 


End Sub 

回答

0

給出以下一個嘗試,看看它是否有任何區別! 它確保您添加相同的類型,並且應該有希望保留您的公式。

Sub Average_Var_Page() 
Z = 6 
PS1 = 0 
PS = 0 

Y = Application.Worksheets("EachStepVar").Range("E" & Z).Value 

Do 
If Y = 0 Then 
    GoTo ZPLUSPS 
    Else 
    PS = PS + Val(Y) 
    PS1 = PS1 + 1 
End If 

ZPLUSPS: 
Z = Z + 1 

Loop Until IsEmpty(Application.Worksheets("EachStepVar").Range("E" & Z)) 

X = PS/PS1 
Application.Worksheets("EACHsTEPVAR").Range("P1").Value = X 


End Sub 
+0

如果我將Y = Application.Worksheets(「EachStepVar」)。Range(「E」&Z).Value移動到循環中,此工作!謝謝 – Pike7893

+0

沒問題!很高興工作! :) – Conquistador

0

我認爲你需要在添加它之前確保你的值是一個數字。嘗試使用像IsNumeric函數的東西

If IsNumeric(Application.Worksheets("EachStepVar").Range("E" & Z).Value) Then 
    PS = PS + Application.Worksheets("EachStepVar").Range("E" & Z).Value 
    End If 

你也可以嘗試CINT()函數,如果Excel某種程度上解釋了一些文字。

相關問題