所以我一直在尝试使用vba自动化excel中的进程,我似乎遇到了麻烦。我以前没有做过很多vba,我很感激任何帮助。我之前问过几个问题,并在谷歌和这里查询信息,但我的程序仍然无法正常运行。
如果我只运行一次这段代码,那么它的工作原理非常好,但我想运行它30次,结果不断更新并将新答案放入不同的单元格然后它不起作用。基本上会为第一次运行返回正确的答案,但每次都会产生错误的响应。
以下是我的代码,对此的任何帮助都将非常感谢!!!
For i = 19 To 19
Range("AA3:AA7").Select
Selection.ClearContents
If Cells(i, 26) > 499999 Then
Cells(3, 27) = 499999
ElseIf Cells(i, 26) < 499999 Then
Cells(3, 27) = Cells(i, 26)
End If
If Cells(3, 27) < 499999 Then
Cells(5, 27) = 0
ElseIf Cells(i, 26) > 999999 Then
Cells(4, 27) = 500000
ElseIf Cells(i, 26) < 999999 Then
Cells(4, 27) = Cells(i, 26) - 499999
End If
If Cells(4, 27) = 0 Then
Cells(5, 27) = 0
ElseIf Cells(i, 26) > 1999999 Then
Cells(5, 27) = 1000000
ElseIf Cells(i, 26) < 1999999 Then
Cells(5, 27) = Cells(i, 26) - 999999
End If
If Cells(5, 27) = 0 Then
Cells(6, 27) = 0
ElseIf Cells(i, 26) > 4999999 Then
Cells(6, 27) = 3000000
ElseIf Cells(i, 26) < 4999999 Then
Cells(6, 27) = Cells(i, 26) - 1999999
End If
If Cells(6, 27) = 0 Then
Cells(7, 27) = 0
ElseIf Cells(6, 27) = 3000000 Then
Cells(7, 27) = Cells(3, i) - 4999999
End If
Cells(i, 30).Value = (Cells(3, 28) + Cells(4, 28) + Cells(5, 28) + Cells(6, 28) + Cells(7, 28)) / Cells(i, 26)
Next i
答案 0 :(得分:0)
当值恰好是数字时,你还没有任何东西,例如&lt; 499999和&gt; 499999没有考虑= 499999。
你也不需要陈述下一个 - 只是下一个会这样做。
我不确定为什么要更新单元格然后将它们一起添加,最好将单元格值分配给变量,如下所示。如果您想查看它出错的地方,我可能会想要添加msgbox调用以在迭代时显示值:
Dim I as integer
Dim value1,value2,value3,value4,value5 as integer
对于i = 19至49
If Cells(i, 26) > 499999 Then
Value1=499999
Else
Value1=Cells(i, 26)
End If
'依旧......
Cells(i, 30).Value = value1+value2 etc...
下一步