VBA 使用重复的条件查找信息

  • 本文关键字:条件 查找 信息 VBA excel vba
  • 更新时间 :
  • 英文 :


我有一个客户端 ID 列表,它与策略编号相关联。它们都在彼此相邻的列中。 客户端 ID 可以与多个 pol 编号相关联,例如 Col_a Col_b cl id pol num 一 1 一 34 一 9 b 4

我正在尝试构建一个宏,如果我要在另一张工作表的单元格上输入客户端 id a,它会在旁边的列中给我所有可能的 pol 编号。其中有 abt 11K,因此无法手动完成。

有什么建议吗?

这里有一些代码可以让你开始。它使用 Worksheet_Change 事件来检测对特定单元格(在本例中为 D5)的更改。我建议将客户端和策略数据格式化为表格,以便您可以轻松动态地引用它。

这假定一个名为"PolTable"的表具有一个名为"客户端 ID"的列。当在 D5 中键入"a"时,它将输出一串策略编号,例如 1、34、4。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
Dim Policies As String
Dim Tbl As ListObject
Set Tbl = Me.Range("PolTable").ListObject
If Not Intersect(Target, Me.Range("D5")) Is Nothing Then
If Target.Value <> "" Then
For Each Rng In Tbl.ListColumns("Client ID").DataBodyRange
If Rng = Target Then
If Policies = "" Then
Policies = Rng.Offset(0, 1).Value
Else
Policies = Policies & ", " & Rng.Offset(0, 1).Value
End If
End If
Next
Target.Offset(0, 1).Value = Policies
End If
End If
End Sub

最新更新