2013-03-15 69 views
3

基本上我有2個細胞。一個是產品說明,一個是產品編號。它現在的存在方式是,產品描述是數據驗證的,產品編號是通過描述查找的。單元格可以同時具有數據驗證和vlookup嗎?

我想要發生的事情是能夠根據產品編號或產品描述進行查找,以便基本上如果我從下拉列表中選擇產品編號,則會查找產品描述,如果我從產品描述中選擇產品描述下拉列表中查找產品編號。

這是可能的還是我想這是錯誤的方式?

+0

這是可行的。您需要使用更改事件。通過控制事件「目標」參數,您可以搜索描述或產品編號。 – 2013-03-15 22:04:19

回答

0

回答一個老問題,因爲沒有人做了精確的...希望這可以幫助其他人。另請參閱代碼中的註釋。

這不能與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 

要實現這種紙張的板模塊這個代碼粘貼。 根據您的需要更改範圍地址。此外,這可以通過動態數組,集合等..等..但這是很簡單:)

相關問題