除以零时的VBA脚本

时间:2013-09-03 18:13:11

标签: excel vba range

我正在尝试在VBA中执行一个公式,但由于分母中的零,我遇到了错误。如果我在分母中有零,我希望将活动单元设置为零。无论我做什么都是不正确的,我不是程序员。我不知道我在做什么。任何帮助将不胜感激。这是我

Range("H" & Row).Activate
If Range("F" & Row) = 0 Then ActiveCell.Formula = 0
ActiveCell.Formula = Range("G" & Row) / Range("F" & Row)

3 个答案:

答案 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)

这样做是因为除了工作表上已有的值之外,你没有在计算中使用任何值。