* 表示我收到错误时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
答案 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()函数。