运行时错误'13'类型不匹配:Excel if else语句

时间:2013-07-10 16:22:09

标签: excel vba excel-vba

* 表示我收到错误时excel突出显示的位置。如果我把第一个命令放在我的else语句之后(在同一行),它将运行一次。然后它在第二次运行时给出相同的错误。然后我把它放在下一行,它再次出错。请帮忙。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我认为您需要在添加之前确保您的值是一个数字。尝试使用IsNumeric函数

之类的东西
  If IsNumeric(Application.Worksheets("EachStepVar").Range("E" & Z).Value) Then
  PS = PS + Application.Worksheets("EachStepVar").Range("E" & Z).Value
  End If

如果Excel以某种方式将数字解释为文本,您也可以尝试CInt()函数。