VBA-乘法列

时间:2018-12-05 21:44:12

标签: excel vba excel-vba

我正在运行一个小型VBA,以遍历一系列行(27-52),以将D列X E列的简单乘法返回到F列。

我下面的代码使Excel崩溃。谁能指出我犯错的明显之处。我显然不是专家!

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 27 To 52

  Cells(i, 6) = Cells(i, 4) * Cells(i, 5)

Next i

End Sub

谢谢

2 个答案:

答案 0 :(得分:4)

由于您使用的更改事件,Excel将在您的代码创建无限循环时崩溃。每次您的代码将两个给定的单元格相乘时,它将被识别为更改事件,因此您的代码将被再次触发,...

您可以使用Michal发布的调整后的代码,也可以调整原始代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    For i = 27 To 52
        Cells(i, 6) = Cells(i, 4) * Cells(i, 5)
    Next i
    Application.EnableEvents = True
End Sub

希望有帮助!

答案 1 :(得分:-1)

我不知道它将如何“崩溃” Excel,另外,您不需要Change(ByVal Target As Range),所以很简单:

Private Sub foo()

    For i = 27 To 52

      Cells(i, 6).Value = Cells(i, 4).Value * Cells(i, 5).Value

    Next i

End Sub