Excel VBA在单元格A中放置一个值,单元格B将自动更改

时间:2015-11-02 00:06:31

标签: excel-vba vba excel

我想问一下在单元格A中放置一个值的最佳方法是什么,单元格B会自动更改?例如:条件是当单元格A是“食物”并且在单元格A中键入食物后,单元格B将自动输入值作为“汉堡” 有什么想法在vba中做到这一点吗?

2 个答案:

答案 0 :(得分:3)

这可以使用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","")

答案 1 :(得分:2)

有很多方法可以做到这一点。它取决于您需要更新的引用数量。如果只有少数人说少于5,那么您可以直接在单元格中使用IIFCHOOSE函数。如果列表较长,则VLOOKUP是一个不错的选择。现在,这只是假设值之间存在一对一的关系。如果您输入食物,是否有可能出现多种结果,例如&#39; Burger&#39; Pizza&#39; Pizza&#39;等等,那么您可以使用数据验证来显示可能的值列表。< / p>

现在,如果你想进入VBA路线,那么你可以创建一个取一个范围的函数,解释数据,然后返回一个值。

请参阅Dan Donoghue的答案以获得一个好例子