If you look at the sheet "test" results in column T there is an error 2042 and cause the row table to be more, what solution only slight modifications but without changing the structure of the code.
Thanks jack
Sub test()
Dim Z, U&
With Sheets("test").Range("t2:t" & Sheets("test").Cells(Rows.Count, "H").End(xlUp))
.Formula = "=LOOKUP([@Date]+0.5,Table2[Date]/(Table2[ITEM NO]=[@[ITEM NO]]),Table2[PRICE])"
Z = .Value
For U = 1 To UBound(Z): Z(U, 1) = CStr(Z(U, 1)): Next
.Value2 = Z
End With
End Sub