0

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

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

3 回答 3

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
于 2013-09-03T18:16:28.173 回答
0

我不推荐 Cor_Blimey 或tigeravatar 推荐 - 两者都会降低代码的可读性。Cor_Blimey 建议使用续行符“_”和语句结束符“:”,这并没有增加代码的简洁性,在逻辑上与上面的代码相同。Tigeravatar 在建议单元格自己处理错误情况方面走在了正确的轨道上,但他的代码建议使所有内容都更难阅读。

我建议的更改是完全删除 VBA,并在 H 列中将进行计算的单元格中使用以下公式:

=IfError(G1/F1,0)

这会起作用,因为除了工作表上已有的值之外,您在计算中没有使用任何值。

于 2013-09-03T18:52:34.247 回答
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
于 2013-09-03T18:30:11.180 回答