Excel 根据父列表自动更新子列表中的值

Excel auto update value in child list based on parent list

我正在尝试处理 excel 中的下拉列表问题。我需要让单元格 "B2" 中的值每时每刻都与 "A2" 中的值相对应。所以我需要弄清楚如何在 "A2".

中更改值时自动更新 "B2" 中的值

单元格中的数据验证:

单元格 "A2" = seller

单元格 "B2" = =INDIRECT($A)

问题是,当我选择梅赛德斯 -> A class,然后我在单元格 "B2" 中更换本田梅赛德斯时,值仍然是 A class。我想在单元格 "B2" 中显示本田在 "A2".

中发生变化时的任何正确值

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

非常感谢您的建议。

这是一种解决方法。在单元格 C2 中,我将此公式用于检查 B2 是否具有基于 A2 的正确范围的选项:

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

然后,我创建了一个宏:

    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

然后将其放入工作表代码中:

    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 时激活宏,然后将 C2 中的当前值粘贴到 B2 中,这将始终是当前卖家列表中的第一个选项。