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个的话,那么你可以直接在单元中使用IIFCHOOSE函数。如果有更长的列表,那么VLOOKUP是一个不错的选择。现在这只是假设值之间存在一对一的关系。如果您输入食物,是否有可能获得多个结果,如“Burger”,“Pizza”等,那么您可以使用Data Validation来呈现可能值的列表。

现在,如果您想要使用VBA路线,那么您可以创建一个函数,它需要一个范围,解释数据,然后返回一个值。

见丹多诺霍的答案一个很好的例子

+1

好听点重新:更多的数据点,'VLOOKUP'将是我的一个大量的选项:)首选武器。 –

+2

谢谢@DanDonoghue。我喜欢你给出的例子:) –

+1

谢谢你们两位。我不知道vlookup会在这种情况下工作。我想我会选择vlookup,因为我有一个列表来参考 –