2016-04-04 7 views
0

Ich erhalte derzeit einen Laufzeitfehler '91 'Objektvariable oder mit Blockvariable wurde für den markierten Code nicht festgelegt. Das Ziel dieses Codes besteht darin, anhand der Eingabe aus dem Benutzerformular nach einem benannten Produkt zu suchen und dieses dann auf die verfügbare Menge zu verteilen. Danach wird der alte Wert durch einen neuen Wert ersetzt, indem der aktuelle Wert mit der bestellten Menge subtrahiert wird.Ersetzen des alten Werts durch einen neuen Wert basierend auf der Eingabe eines Benutzerformulars

Private Sub btnAdd_Order_Click() 
Dim X As Integer 
Dim nextrow As Range 
Dim DateCus As Range 
Dim i As Range 

If Me.txtOrder_No.Value = "" Then 
MsgBox "Add an Order No" 
Exit Sub 
End If 

If Me.Order1.Value = "" And Me.Qty1.Value = "" Then 
MsgBox "No order was specified. Please input an order" 
Exit Sub 
Else 
For X = 1 To 8 

Set nextrow = Sheet6.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 
If Me.Controls("Order" & X).Value > "" And Me.Controls("Qty" & X).Value > "" Then 

If Me.Controls("Qty" & X).Value < Application.WorksheetFunction.VLookup(Me.Controls("Order" & X), Sheet4.Range("Products"), 4, 0) Or Me.Controls("Qty" & X).Value = Application.WorksheetFunction.VLookup(Me.Controls("Order" & X), Sheet4.Range("Products"), 4, 0) Then 

'This is the one causing the error 
Set i = Sheet3.Range("Ingredients").Find(Me.Controls("Order" & X).Value).Offset(0, 3) 

i = Application.WorksheetFunction.VLookup(Me.Controls("Order" & X), Sheet4.Range("Products"), 4, 0).Value - Me.Controls("Qty" & X).Value 



'End If 

Else 
MsgBox "There's no stock available for one of the orders" 
+0

Es hilft immer festzustellen, welche Zeile den Fehler verursacht. –

Antwort

0

versuchen

Set nextrow = Sheet6.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 

mit

Set nextrow = Worksheets("Sheet6").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 

und die Gleichen ("Sheet3", "Sheet4", ...) ersetzt wird, auch.

Verwandte Themen