2017-02-24 40 views
0

我想處理excel中的下拉列表問題。我需要在每個時刻保持單元格「B2」中的值與「A2」中的值相對應。所以我需要弄清楚如何自動更新「A2」中變化值的「B2」中的值。在細胞基於父列表的子列表中的Excel自動更新值

cell "A2" is filled by range seller and cell "B2" by ranges bmw,mercedes and honda

A1:A3 range "seller", C2:C3 range "bmw", D2:D3 range "honda" and E2:E3 range "mercedes"

數據驗證:

細胞 「A2」= seller

細胞 「B2」= =INDIRECT($A$2)

問題是,當我挑選例如奔馳 - >一個班,然後我改變奔馳在浩單元格「B2」中的nda仍然是A類的值。我想在單元格「B2」中顯示本田的任何正確值,在「A2」中立即改變。

是否可以用任何公式或使用宏來更新這些值?

非常感謝您的建議。

+1

我認爲你正在尋找依賴性下拉? http://www.contextures.com/xlDataVal02.html –

+0

@TimWilkinson提供的鏈接將解決您的問題。如果需要幫助,請告訴我們。 – harun24hr

+0

謝謝你的回答。然而我的問題沒有解決在這個鏈接。也許在上一章中調整解決方案「選擇後清除相關單元」我可以解決問題。也許我沒有解釋清楚。所以如果你看@TimWilkinson鏈接的最後一章。我不需要清除相關單元格,而是需要從相關範圍中填充任何正確的值。解釋一下,如果我在父母單元中選擇了「mercedes」,並且在依賴中選擇了「A類」。細胞。現在,我選擇父母單元格中的「寶馬」,我想在自動更新值。細胞基於這種變化。不改變依賴。細胞手動 – KubOn

回答

0

這是一種解決方法。在小區C2我把這個公式,以檢查是否B2具有從基於A2正確的範圍內選擇一個選項:

=IF(ISERROR(VLOOKUP(B2,INDIRECT(A2),1,FALSE)),HLOOKUP(A2,D1:F3,2,FALSE),B2) 

然後,我創建宏:

enter image description here

Sub Change_Model() 
' 
' Change_Model Macro 
' 

' 
    Range("C2").Select 
    Selection.Copy 
    Range("B2").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Application.CutCopyMode = False 
End Sub 

然後把它放在工作表代碼中:

enter image description here

Private Sub Worksheet_Change(ByVal Target As Range) 
If Not Intersect(Target, Range("A2")) Is Nothing Then 
    Select Case Range("A2") 
     Case "BMW": Change_Model 
     Case "Honda": Change_Model 
     Case "Mercedes": Change_Model 
    End Select 
End If 
End Sub 

這會在您更改A2時隨時激活宏,然後將當前calue從C2粘貼到B2中,這將始終是當前Seller列表中的第一個選項。

enter image description here

+0

非常感謝@JacobEdmond。這完全解決了我的問題:)。 – KubOn

+0

太棒了!你介意選擇這個作爲你的問題的答案嗎?謝謝! –

相關問題