【问题标题】:Creating dependent comboxes based on relational data in worksheet rows根据工作表行中的关系数据创建依赖组合框
【发布时间】:2019-08-14 20:54:46
【问题描述】:

我正在创建一个用户表单来记录销售线索。

用户窗体上的一个组合框记录了“客户”工作表中的“客户代码”。另一个组合框包含“联系人”工作表中的联系人列表

“联系人”工作表上的每一行都包含“客户代码”(您现在可能会看到这是怎么回事!)

“客户”工作表包含唯一的客户列表,但“联系人”工作表包含每个客户的多个联系人姓名。

我需要联系人组合框仅根据从客户代码组合框中选择的客户代码显示联系人。

目前,当使用以下代码初始化用户表单时,会填充客户组合框

cbxCustList.RowSource = "Customers!A2:B" & Sheets("Customers").Range("B" & Rows.Count).End(xlUp).Row

在初始化表单时也会填充联系人框

cbxConList.RowSource = "Contacts!A2:B" & Sheets("Contacts").Range("B" & Rows.Count).End(xlUp).Row

这里的问题是始终显示所有联系人,要求是根据客户选择过滤联系人。

【问题讨论】:

  • 欢迎来到 SO!不幸的是,您的问题过于宽泛,无法在此论坛上得到合理的回答 - 该网站是关于 特定 编码问题的,而不是白板一般概念设计。您是否能够填充客户代码框? 如何 填充它们?你在处理盒子的Change 事件吗?或者您只是在为联系人框寻找合适的数据源而苦苦挣扎?
  • 感谢您的回复,我将尝试详细说明您的具体问题,希望我能提供足够的细节!初始化 UserForm 时会填充客户代码和联系人组合框 cbxCustList.RowSource = "Customers!A2:B" & Sheets("Customers").Range("B" & Rows.Count).End(xlUp).Row联系人组合框的填充方式相同 cbxConList.RowSource = "Contacts!A2:B" & Sheets("Contacts").Range("B" & Rows.Count).End(xlUp).Row 问题是联系人使用上述逻辑的列表总是显示所有联系人
  • 作为一个管家点,我最好用这个细节提出一个新问题吗?
  • 最好edit你的问题尽可能详细:)
  • 已编辑,抱歉.. 我不知道我不知道什么!在我的工作表中包含数据结构会有帮助吗?

标签: excel vba


【解决方案1】:

您好,我现在使用高级过滤解决了这个问题,M2 是从客户组合框中填充的。

Dim r As Integer
r = 2
    RefData.Range("M2") = cbxCustList.Value

            Sheets("Contacts").Columns("A:B").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=RefData.Range("M1:M2"), CopyToRange:=RefData.Range("O1:P1"), Unique:=False

cbxCon.清除

直到 RefData.Cells(r, 16).Value = ""

cbxCon.AddItem RefData.Cells(r, 16).Value
   r = r + 1

循环 结束子

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2023-01-16
    • 1970-01-01
    相关资源
    最近更新 更多