0

*表示当我收到错误时 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
4

2 回答 2

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
于 2013-07-10T17:03:51.527 回答
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() 函数。

于 2013-07-10T17:14:35.050 回答