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 中,这将始终是当前卖家列表中的第一个选项。
我正在尝试处理 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 中,这将始终是当前卖家列表中的第一个选项。