我正在尝试处理excel中的下拉列表问题。我需要在每个时刻保持单元格“B2”中的值与“A2”中的值相对应。所以我需要弄清楚如何在“A2”中对“B2”中的值进行自动更新值。
单元格中的数据验证:
单元格“A2”= seller
单元格“B2”= =INDIRECT($A$2)
问题在于,当我选择例如梅赛德斯 - >一个班级后来我在单元格“B2”上改变了本田的奔驰价值仍然是A级。我希望在单元格“B2”中显示本田的任何正确值,并在“A2”中立即更改。
是否可以使用任何公式更新这些值或使用宏?
非常感谢您的建议。
答案 0 :(得分:0)
这是一种解决方法。在单元格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的calue粘贴到B2中,这将始终是当前卖家列表中的第一个选项。