Я делаю инвентаризацию с помощью Excel, используя VBA.Я использовал этот код, если sheet1
(Receipt
) имеет предмет из инвентаря, а затем сократил количество запаса с sheet2
(inventory
).Но моя проблема в том, что, хотя запас уже <0, он все равно может сократить запас (так что я получил - в моем складе).Что я хочу, так это если запас из инвентаря равен 0, тогда вы не можете сделать квитанцию с этим предметом, если запас еще есть (> = 1), тогда вы можете добавить этот товар в квитанцию.
Может ли кто-нибудь помочь мнес этим кодом?
Итак, это мой код, я попытался сделать оператор If Else, но он не работает:
Sub printInvoice()
Sheet1.PrintPreview
'sheet1.printout
' we declare 4 variables
Dim rng1, rng2, cell1, cell2, cell3 As Range
Dim lastRow1 As Long
lastRow1 = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
Set rng1 = Worksheets("Sheet1").Range("B16:B" & lastRow1)
Dim lastRow2 As Long
lastRow2 = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
Set rng2 = Worksheets("Sheet2").Range("B2:B" & lastRow2)
For Each cell1 In rng1
If IsEmpty(cell1.Value) Then Exit For
For Each cell2 In rng2
If IsEmpty(cell2.Value) Then Exit For
If cell1 = cell2 Then
If cell2.Offset(0, 1).Value < 1 Then
Debug.Print "Out Of Stock"
End If
Else
cell2.Offset(0, 1) = cell2.Offset(0, 1) - cell1.Offset(0, 1)
End If
Next cell2
Next cell1
End Sub