【问题标题】:Excel VBA - Multiple cell update based on a change in ONE cellExcel VBA - 基于一个单元格中的更改的多个单元格更新
【发布时间】:2009-04-15 13:05:35
【问题描述】:

当另一个单元格发生变化时,我想在 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

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

问候, 帕布

【问题讨论】:

    标签: excel vba


    【解决方案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 时收到两条消息。

    【讨论】:

      【解决方案2】:

      需要检查的几件事:

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

      【讨论】:

        猜你喜欢
        • 2016-12-09
        • 2020-12-14
        • 1970-01-01
        • 2016-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多