根据其他连接的单元格中的值限制值(两者都取决于相同的列表)

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 

我有这个VBA代码,它从表2中select下拉列表中的值。我需要的是以下内容:现在“A2”单元格的下拉列表中显示的选项应该是除A001之外的所有选项,即除了上面已经select的选项。和第一栏中的所有其他下拉菜单一样。 查看这张图片! 这个也是

我将把所有的组件放在一张工作表上; 例如Sheet2。 虽然我自己的样本数据包含19个A001,A002,…等条目,但是这应该适用于任意数量的条目,前提是您已经充分填充了Z列中的数组公式。

  1. 在右边一个未使用的列(如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(,)) 

用CSE确认并填写以获取列A中的每个条目

  1. 转到公式,定义的名称,名称pipe理器,并使用以下公式作为引用来创build一个新的已定义的名称,如带有工作簿范围的dv_list

     =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)) 
  2. selectC1:C9并使用数据,数据工具,数据validation创build一个列表types数据validation,其中=dv_List作为源:

在这里输入图像说明

我在这里被重新路由,因为我的问题是一个“重复”,但我没有遵循上面的例子,我将如何完成以下内容:

这个问题在这里已经有了答案:根据其他连接的单元格中的值限制值(两者都取决于相同的列表)1答案

我有一个下拉列表如下:

Max85k,Max110k,Max125k,Max150k,Max175k

这些指的是可以装入这些桶中的最大量。

如果我的工作表中另一个单元格中列出的金额是$ 105k,例如,我不希望Max85kselect被允许。 例如,如果值是83K,那么所有的select都将被允许b / c,该数量可以适合任何桶。 如果值是135k,那么只允许max150k和max175k的select。 等等

有没有办法做到这一点?