我在这个项目中使用Excel VBA。该项目的目标是有一个显示多个列的工作表。每列都带有项目代码(用于勺子)和库存中的勺子数量。这部分是创建和功能的。
然后,我希望工作簿搜索未结订单列表,获取在未结订单上创建产品所需的料品ID,并将其放在先前创建的料品列中。
以下代码是我目前所拥有的
For j = 2 to 264
For p =2 to 300
'If the item on the order matches the item on the material required sheet, then the variables are set and it starts the inner loop
If Sheets("OOR").Cells(j, 5).Value = Sheets("BOM").Cells(p, 1).Value then
FgScoQty = Sheets("OOR").Cells(j, 10).Value
ItemScoop = Sheets("BOM").Cells(p, 4).Value
FgItem = Sheets("BOM").Cells(p, 1).Value
'If they match, it then looks on the sheet with the columns to put this information in the next blank row of the correct column
For x = 1 to 258
If ItemScoop = Sheets("Sheet5").Cells(1, x).Value Then
lastRow = Sheets("Sheets5").Cells(Rows.Count, x).End(xlUp).Offset(1, 0).Row
Sheets("Sheet5").Cells(lastRow, x).Value = fgItem
Sheets("Sheet5").Cells(lastRow, x).Offset(0, 1).Value = fgScoQty
End If
Next x
End If
Next p
Next j
这是第一次完美的
之后我就会遇到问题
If ItemScoop = Sheets("Sheet5").Cells(1, x).Value Then
我不确定为什么。我相信在满足条件后我需要退出内循环(循环x)。我在网上做了很多搜索,因为这似乎是一个相当普遍的问题,但我找不到任何有用的东西。
当我尝试Exit For
时,它似乎将我从我的所有循环中删除。
我希望它用变量填充单元格,然后返回到开头并查看下一个j。
答案 0 :(得分:0)
一旦达到你想要的效果,你需要退出循环
因此,要强制开始下一个循环( j ),您需要使用Exit for
试一试:
For j = 2 to 264
For p =2 to 300
'If the item on the order matches the item on the material required sheet, then the variables are set and it starts the inner loop
If Sheets("OOR").Cells(j, 5).Value = Sheets("BOM").Cells(p, 1).Value then
FgScoQty = Sheets("OOR").Cells(j, 10).Value
ItemScoop = Sheets("BOM").Cells(p, 4).Value
FgItem = Sheets("BOM").Cells(p, 1).Value
'If they match, it then looks on the sheet with the columns to put this information in the next blank row of the correct column
For x = 1 to 258
If ItemScoop = Sheets("Sheet5").Cells(1, x).Value Then
lastRow = Sheets("Sheets5").Cells(Rows.Count, x).End(xlUp).Offset(1, 0).Row
Sheets("Sheet5").Cells(lastRow, x).Value = fgItem
Sheets("Sheet5").Cells(lastRow, x).Offset(0, 1).Value = fgScoQty
End If
Next x
'HERE YOU ESCAPE THE LOOP
Exit For
Else
End If
Next p
Next j