Sub test()
Dim companies As Variant, grades As Variant, results As Variant, i As Long, j As Long
With Application
companies = .Transpose(Range("B3:B" & Cells(Rows.Count, "B").End(xlUp).Row)) 'actual data
grades = .Transpose(Range("D3:D" & Cells(Rows.Count, "D").End(xlUp).Row)) 'actual data
ReDim results(1 To 2, 1 To 2)
results(1, 1) = Range("B2").Value 'header info
results(2, 1) = Range("D2").Value 'header info
For i = 1 To UBound(companies)
For j = 1 To UBound(grades)
results(1, UBound(results, 2)) = companies(i)
results(2, UBound(results, 2)) = grades(j)
ReDim Preserve results(1 To 2, 1 To UBound(results, 2) + 1)
Next
Next
ReDim Preserve results(1 To 2, 1 To UBound(results, 2) - 1)
Range("E3").Resize(UBound(results, 2), UBound(results, 1)).Value = .Transpose(results)
End With
End Sub