链接2单元格数据validation列表
我在Excel中有2个内嵌数据validation列表。 两个单元格都包含指向表格2列的下拉箭头。 我想要的是,当1个单元格包含一个值时,另一个单元格包含表格中相应行的值,但包含自己的列, 反之亦然 。 所以,如果我从cell1
的下拉列表中select一个值,它会覆盖cell2
,如果我从cell2
的下拉列表中select一个值,它将覆盖cell1
即对于具有列cl
和d
的表GoalTbl
; 名为cl_val
的单元格包含指向GoalTbl[cl]
的数据validation列表。 另一个名为d_val
单元格指向GoalTbl[d]
所以为了得到一个基于cl_val
我使用了一个像=INDEX(GoalTbl[d],MATCH(cl_val,GoalTbl[cl],0))
类似地,根据d_val
获得cl_val
的值, =INDEX(GoalTbl[cl],MATCH(d_val,GoalTbl[d],0))
我不能把这些公式放在他们各自的单元格中,原因有二:
- 由于每个公式都指向另一个单元格,我会得到一个循环引用
- 如果我使用下拉箭头select一个值,它将覆盖该单元格中的公式
那么,我可以通过更改数据validation所指向的列表来获得此链接function吗?或者使用VBA方法? 我想这是一个validation的dynamic默认公式的一个组合,并基于其他 – 2个领域,我不知道如何与公式同时处理1细胞的覆盖机制。
感谢Worksheet_Change
指针,我有一个VBA方法;
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [cl_val]) Is Nothing Then With Application.WorksheetFunction UI False [d_val] = .Index([Goaltbl[d]], .Match([cl_val], [Goaltbl[cl]], 0)) UI True End With ElseIf Not Intersect(Target, [d_val]) Is Nothing Then With Application.WorksheetFunction UI False [cl_val] = .Index([Goaltbl[cl]], .Match([d_val], [Goaltbl[d]], 0)) UI True End With End If End Sub
其中UI
只是一个Sub *来打开/closures屏幕更新和事件(我有一个Worksheet_Calculate
macros,我不想触发)
尽pipe如此,函数的方法将是很好的了解 – 我相信通过更改列表input可以做些什么
*用于参考的UI代码
Public Sub UI(t As Boolean) Application.EnableEvents = t Application.ScreenUpdating = t End Sub