基于父列表的子列表中的Excel自动更新值

问题描述:

我想处理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

这是一种解决方法。在小区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

太棒了!你介意选择这个作为你的问题的答案吗?谢谢! –