0

我已经计算了一些值,应该有两个结果。我想在两个不同的单元格中显示这些结果。

当我更改 A1 或 A2 值时,excel 将停止。无论如何我可以显示这些值吗?

Sheet1 
Private Sub Worksheet_Change(ByVal Target As Range)
   Call DisplayResult 
End Sub

Module1 
Sub DisplayResult() 
     Range("A3").Value = Range("A1").Select.Value + Range("A2").Select.Value     
     Range("B3").Value = Range("B1").Select.Value + Range("B2").Select.Value 
End Sub
4

1 回答 1

0

你根本不需要在这里使用 .select -

工作表代码:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Sheet1.Range("A1:B2"), Target) Is Nothing Then
    MsgBox "Hello"
End If

End Sub

模块代码:

Sub DisplayResult()

Sheet1.Range("A3").Value = Sheet1.Range("A1").Value + Sheet1.Range("A2").Value
Sheet1.Range("B3").Value = Sheet1.Range("B1").Value + Sheet1.Range("B2").Value

End Sub

如果您将该Call DisplayResult行放在 Worksheet_Change 子例程中而不限制应该触发的范围,那么它将最终进入无限循环(DisplayResult 触发 Worksheet_Change 子程序)。什么时候应该触发 DisplayResult 代码?仅当您更改 Range A1:B2 时?

于 2013-01-17T13:30:02.167 回答