Vba 基于其他连接单元格中的值限制值(两者都依赖于同一列表)

Vba 基于其他连接单元格中的值限制值(两者都依赖于同一列表),vba,excel,Vba,Excel,我有一个VBA代码,它从表2中的列表中选择下拉值。 我需要的是: 现在,“A2”单元格下拉列表中显示的选项应为除A001之外的所有选项,即除上面已选择的选项外……与第一列中的所有其他下拉列表类似。 我将把所有的组件放在一张工作表上;e、 g.第2页。虽然我自己的样本数据包含19个A001、A002。。。等条目,如果您已经充分填写了Z列中的数组公式,则这应该适用于任意数量的条目 在右侧未使用的列(如Z列)中,将此数组公式放入第二行 Sub Macro1() ' ' Macro1 Macr

我有一个VBA代码,它从表2中的列表中选择下拉值。 我需要的是: 现在,“A2”单元格下拉列表中显示的选项应为除A001之外的所有选项,即除上面已选择的选项外……与第一列中的所有其他下拉列表类似。

我将把所有的组件放在一张工作表上;e、 g.第2页。虽然我自己的样本数据包含19个A001、A002。。。等条目,如果您已经充分填写了Z列中的数组公式,则这应该适用于任意数量的条目

  • 在右侧未使用的列(如Z列)中,将此数组公式放入第二行

        Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Sheet2!$A:$A"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
        End Sub
    
  • 与CSE确认并填写以捕获A列中的每个条目

  • 转到公式、定义名称、名称管理器,并使用以下公式作为引用,创建一个新的定义名称,如dvu list,其工作簿范围为:

  • 选择C1:C9并使用数据、数据工具、数据验证创建一个列表类型的数据验证,源为
    =dv_List


  • 我被重新安排到这里,因为我的问题是“重复的”,但我没有按照上面的例子说明如何完成以下任务:

    这个问题在这里已经有了答案: 基于其他连接单元格中的值限制该值(两者都依赖于同一列表)1答案

    我有以下内容的下拉列表:

    Max85k、Max110k、Max125k、Max150k、Max175k

    这些是指可装入这些铲斗的最大数量

    例如,如果在我的工作表的另一个单元格中列出的金额是105k美元,我不希望允许选择Max85k。例如,如果该值为83K,则所有选择都将被允许b/c,该金额可以放入任何铲斗中。如果该值为135k,则只允许选择max150k和max175k。等等


    有办法做到这一点吗?

    您原来的a001、a002、。。。名单?他们可以是任何固定号码..给你999。嘿!谢谢,但是第一步在Z栏没有任何结果。你能解释一下每一步吗?阅读我的叙述。您必须将我的示例转换为您自己的多工作表方案。在第一步之后,我是否应该获得Z列中的值?我没有得到任何消息。我能了解一下你是怎么想的吗?我是说公式很长。
    =IFERROR(INDEX(A$3:INDEX(A:A, MATCH("zzz", A:A)), MATCH(0, IF(ISERROR(MATCH(A$3:INDEX(A:A, MATCH("zzz", A:A)), C:C, 0)), COUNTIF(Z$1:Z1, A$3:INDEX(A:A, MATCH("zzz", A:A))), 1), 0)), TEXT(,))
    
    =Sheet2!$Z$2:INDEX(Sheet2!$Z:$Z, AGGREGATE(14, 6, ROW(Sheet2!$Z$2:INDEX(Sheet2!$Z:$Z, MATCH("zzz", Sheet2!$Z:$Z)))/SIGN(LEN(Sheet2!$Z$2:INDEX(Sheet2!$Z:$Z, MATCH("zzz", Sheet2!$Z:$Z)))),1))