【发布时间】:2015-02-09 17:03:34
【问题描述】:
这是我想要完成的一个例子是 Excel。
食品组/食品 / 苹果 / 香蕉 / 胡萝卜 / 西兰花
我正在写一个 If Then 语句来尝试将食物与他们的组匹配。
(我知道 Access 会更容易,但我不想一直从 Excel 复制和粘贴到 Access 和返回。它只会是 6 个不同的项目)
我编写的 If Then 编码仅用于执行第一个单元格。但是我的循环不起作用。请帮忙
Sub InsertFoodGroup()
Dim food As String, group As String
Dim i As Integer
i = Cells(2, 2).End(xlDown).Row
food = Range(Cells(2, 2), Cells(i, 2)).Value
Do While Cells(i, 2).Value <> ""
If food = "Apple" Then
group = "Fruit"
ElseIf food = "Banana" Then
group = "Fruit"
ElseIf food = "Carrot" Then
group = "Vegetable"
ElseIf food = "Broccoli" Then
group = "Vegetable"
Else
total = "false"
End If
i = i + 1
Loop
Range(Cells(2, 21), Cells(i, 21)).Value = group
End Sub
【问题讨论】:
-
您忘记在代码中设置 food 变量的值。
-
当你说不工作究竟是什么不工作?
-
嗯,1)
i已经从数据的末尾开始了,你可能想说i = 2和Do While Cells(i,2).Value <> ""; 2)food没有赋值; 3)group每次都被赋值,但没有在任何地方使用; 4)如果你想将food与group匹配,你可能想返回group,而不是total,并且你想在每个Loop之前都这样做。 -
对不起。我从我的实际工作表中更改了名称,却忘了全部更改。我编辑了代码并给出了食物和组范围
标签: vba loops if-statement