Se você não quer lidar com uma matriz, você pode fazer algo assim (suponha que a tabela comece em E5)
Sub test()
Dim x As Integer
Dim y As Integer
Dim item As String
For Each c In Range("A1:A3")
x = c.Value
y = c.Offset(, 1).Value
item = c.Offset(, 2).Value
Cells(4 + x, 4 + y) = item
Next
End Sub
Para encontrar as células vazias e colocar os zeros, você poderia fazer algo como -
Dim d As Range
For Each d In Range("E5:G7")
If IsEmpty(d) Then
d = 0
End If
Next