2016-04-04 3 views
0

В настоящее время я испытываю ошибку времени выполнения '91 'Object Variable или With Block Variable, которая не установлена ​​для выделенного кода. Целью этого кода является поиск именованного продукта на основе ввода из пользовательской формы, а затем его смещение на доступное количество. Впоследствии он заменит старое значение новым значением, вычитая текущее значение с помощью упорядоченного количества.Замена старого значения на новое значение на основе ввода пользовательской формы

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

Всегда помогает отметить, какая строка вызывает ошибку. –

ответ

0

попробуйте заменить

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

с

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

и любит ("Лист3", "Лист4", ...), тоже.