Excel VBA在单元格A中放置一个值,单元格B会自动更改
问题描述:
我想问问在单元格A中放置一个值的最佳方式是什么,单元格B会自动更改?例如:条件是当单元格A是“食物”,在单元格A中输入食物后,单元格B将自动输入值为“汉堡” 任何想法在vba中执行此操作?Excel VBA在单元格A中放置一个值,单元格B会自动更改
答
这可以用VBA或公式完成。
VBA:
右键单击该选项卡中,选择查看代码:
粘贴此在:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then 'Check the user entered data into column A
If UCase(Target.Text) = "FOOD" Then Target.Offset(0, 1).Formula = "Burger" 'Update 1 cell to the right of the cell the user modified (called Target) if the cell text is "Food"
End If
End Sub
Excel公式:
=IF(A1="FOOD","Burger","")
答
有许多如何做到这一点。这将取决于您需要更新的引用数量。如果只有少于5个的话,那么你可以直接在单元中使用IIF
或CHOOSE
函数。如果有更长的列表,那么VLOOKUP
是一个不错的选择。现在这只是假设值之间存在一对一的关系。如果您输入食物,是否有可能获得多个结果,如“Burger”,“Pizza”等,那么您可以使用Data Validation来呈现可能值的列表。
现在,如果您想要使用VBA路线,那么您可以创建一个函数,它需要一个范围,解释数据,然后返回一个值。
见丹多诺霍的答案一个很好的例子
好听点重新:更多的数据点,'VLOOKUP'将是我的一个大量的选项:)首选武器。 –
谢谢@DanDonoghue。我喜欢你给出的例子:) –
谢谢你们两位。我不知道vlookup会在这种情况下工作。我想我会选择vlookup,因为我有一个列表来参考 –