Ok, consertamos o problema e testamos para confirmar o funcionamento O problema foi que tentei referenciar o ID da linha com base em uma variável não existente, não na variável que estava sendo colocada em loop.
Para o bem da posteridade: certifique-se de que, toda vez que tentar usar uma variável, você esteja usando a variável correta já declarada.
Código fixo para referência:
Private Sub MultiBox_Change()
Dim oSht As Worksheet
Dim lastRow As Long, i As Long
Dim strSearch As String
Dim t As Long
Dim Var2 As String
Dim P As Long
Dim Var1 As String
Dim x As Long
x = 1
On Error GoTo Err
Set oSht = Sheets("Prices")
lastRow = oSht.Range("A" & Rows.Count).End(xlUp).Row
Var1 = FirstBox.Value & " " & SecondBox.Value & " " & ThirdBox.Value & " " & FourBox.Value
Var2 = FifthBox.Value & " " & SixthBox.Value
For i = 1 To lastRow
If oSht.Range("A" & i).Value = Var1 Then
For P = 2 To 300
If Cells(x, P) = Var2 Then
**PredefinedForm.Value = Cells(P, i).Value**
Exit Sub
End If
Next P
End If
Next i
Exit Sub
Err:
MsgBox Err.Description
End Sub