Excel VBA - 基于一个单元格中的更改进行多个单元格更新

时间:2009-04-15 04:57:37

标签: excel-vba vba excel

我想在Excel中填充一系列单元格,当另一个单元格发生变化时。

我有一个宏,可以根据项目编号从另一个主工作簿(WB2)中检索客户详细信息。项目编号在WB1中作为列表。当用户从WB1中选择项目编号时,我需要使用客户详细信息填充H9:H15(在WB1中)范围内的单元格。我正在使用worksheet_change事件来触发它。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$15" Then
        Call modInvoiceFiller.FillCustomerDetails
    End If
End Sub

使用此代码,不会发生更新。如果我手动运行该过程,它将填写所需的详细信息。有人可以帮忙吗?

此致 帕布

2 个答案:

答案 0 :(得分:1)

这对我来说很好。您确定宏是附加到正确的工作表而不是工作簿(或者更糟糕的是,在模块中)吗?

一种简单的方法是将其更改为:

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox Target.Address
    If Target.Address = "$A$15" Then
        MsgBox "XX " & Target.Address
    End If
End Sub

并确保在更改任何单元格时弹出一条消息(包括您应在if语句中检查的值),并确保在更改单元格A15时收到两条消息。

答案 1 :(得分:1)

要检查的几件事情:

  • 您是否在包含项目编号的工作表上实现了Worksheet_Change?
  • 如果删除modInvoiceFiller.FillCustomerDetails代码并将其替换为msgbox调用,代码是否会被执行?