Попытка создать al oop с помощью оператора if, где я go через каждое имя столбца, затем создает IFERROR with VLOOKUP
, который будет извлекать инвентарь этого имени на определенную дату (найден в другой книге). ), и если этот продукт не имеет каких-либо запасов на эту дату, он равен нулю.
Почему-то выдает ошибку, когда я пытаюсь написать VLOOKUP formula
, любая помощь будет отличной.
На консолидированной странице названия продукта указаны в столбце B, затем дата - в столбце C, затем я хочу разместить значение в столбце K.
спасибо!
Sub IFTEST()
LR = ActiveSheet.Cells(Rows.Count, "M").End(xlUp).Row
Dim APPLE As Range
Dim GRAPE As Range
Dim RICE As Range
Dim BREAD As Range
Dim PASTA As Range
Dim INVENTORY As Range
Dim cell As Range
Set APPLE = Workbooks("APPLE.xls").Worksheets("APPLE").Range("K:N")
Set GRAPE = Workbooks("GRAPE.xls").Worksheets("GRAPE").Range("K:N")
Set RICE = Workbooks("RICE.xls").Worksheets("RICE").Range("K:N")
Set BREAD = Workbooks("BREAD.xls").Worksheets("BREAD").Range("K:N")
Set PASTA = Workbooks("PASTA.xls").Worksheets("PASTA").Range("K:N")
Set INVENTORY= Workbooks("INVENTORY.xlsm").Sheets("INVENTORY").Range("B2:B" & LR)
Application.ScreenUpdating = False
For Each cell In Inventory
If cell.Value = "apple" Then
'here is where I get the error in the lookup
cell.Offset(0, 12).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(cell.Offset(0, 1).Value, APPLE, 4, False), 0)
ElseIf cell.Value = "grape" Then
cell.Offset(0, 12).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(cell.Offset(0, 1).Value, GRAPE, 4, False), 0)
ElseIf cell.Value = "rice" Then
cell.Offset(0, 12).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(cell.Offset(0, 1).Value, RICE, 4, False), 0)
ElseIf cell.Value = "bread" Then
cell.Offset(0, 12).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(cell.Offset(0, 1).Value, BREAD, 4, False), 0)
ElseIf cell.Value = "pasta" Then
cell.Offset(0, 12).Value = WorksheetFunction.IfError(WorksheetFunction.VLookup(cell.Offset(0, 1).Value, PASTA, 4, False), 0)
Else
cell.Offset(0, 12).Value = 0
End If
Next
End Sub