O problema parece ser causado pelo fato de que adicionar um novo QueryTable envia a coluna QueryTable (s) adicionada anteriormente à direita.
Isso pode ser desfeito adicionando o seguinte código imediatamente após a instrução End With . Para cada novo QueryTable após o primeiro, isso excluirá a única coluna de células à esquerda do QueryTable (s) adicionado anteriormente, realinhando-as horizontalmente.
If i <> 8 Then
Range("N8", W.Range("$N$" & i).Offset(-1)).Delete (xlShiftToLeft)
End If
