我正在尝试在VBA中执行一个公式,但由于分母中的零,我遇到了错误。如果我在分母中有零,我希望将活动单元设置为零。无论我做什么都是不正确的,我不是程序员。我不知道我在做什么。任何帮助将不胜感激。这是我
Range("H" & Row).Activate
If Range("F" & Row) = 0 Then ActiveCell.Formula = 0
ActiveCell.Formula = Range("G" & Row) / Range("F" & Row)
答案 0 :(得分:3)
尝试使用其他
类似
Range("H" & Row).Activate
If Range("F" & Row) = 0 Then
ActiveCell.Formula = 0
Else
ActiveCell.Formula = Range("G" & Row) / Range("F" & Row)
End If
答案 1 :(得分:0)
您可以将语句构建到公式中:
For Row = 1 To 3
Cells(Row, "H").Formula = "=IF(F" & Row & "=0,0,G" & Row & "/F" & Row & ")"
Next Row
而不是使用循环......
With Range("H2:H" & Cells(Rows.Count, "G").End(xlUp).Row)
.Formula = "=IF(F" & .Row & "=0,0,G" & .Row & "/F" & .Row & ")"
.Value = .Value
End With
答案 2 :(得分:0)
我不推荐Cor_Blimey或tigeravatar推荐 - 两者都使代码的可读性降低。 Cor_Blimey建议使用行继续符“_”和语句结尾“:”不要添加到代码的简洁性,并且在逻辑上与上面的代码相同。 Tigeravatar有点在正确的轨道上,建议单元格处理错误案例本身,但他的代码建议使一切更难以阅读。
我建议的更改是完全放弃VBA并在H列的单元格中使用以下公式进行计算:
=IfError(G1/F1,0)
这样做是因为除了工作表上已有的值之外,你没有在计算中使用任何值。