基本上我有2个细胞。一个是产品描述,一个是产品编号。它现在存在的方式是,产品描述是经过数据验证的,产品编号是按描述查找的。
我想要发生的是能够根据产品编号或产品描述进行查找,这样基本上如果我从下拉列表中选择产品编号,产品描述就是查找,如果我从下拉列表中选择产品描述产品编号是查找。
这是可能的还是我想错了?
像其他人一样回答一个古老的问题......希望这对其他人也有帮助。另外,请参阅代码中的注释。
这不能使用 Excel 公式和验证来完成,因为它会创建循环引用[不是说您不能更改循环迭代的计数,但仍然......]
它在 VBA 中要简单得多......这是任何想要使用它的人的代码......
Private Sub Worksheet_Change(ByVal Target As Range)
Const sNumRng As String = "$A$1"
Const sDescRng As String = "$B$1"
'# both sListRngNum & sListRngDesc must be of the same size
Const sListRngNum As String = "$K$1:$K$4"
Const sListRngDesc As String = "$L$1:$L$4"
'# EnableEvnent should be disabled first
'# because the code will trigger it again
'# by changing the next cell value
Application.EnableEvents = False
If Target.Address = sNumRng Then
Range(sDescRng).Value = WorksheetFunction.Index(Range(sListRngDesc), _
WorksheetFunction.Match(Target.Value, Range(sListRngNum), 0))
ElseIf Target.Address = sDescRng Then
Range(sNumRng).Value = WorksheetFunction.Index(Range(sListRngNum), _
WorksheetFunction.Match(Target.Value, Range(sListRngDesc), 0))
End If
Application.EnableEvents = True
End Sub
将此代码粘贴到要实现此功能的工作表的工作表模块中。根据您的需要更改范围地址。此外,这可以通过动态数组、集合等来完成。但是这很简单:)