Erstens verwendest Du für BEIDE Schleifen FieldCount, also die Anzahl der ErgebnisSPALTEN. Du müsstest für die äußere Schleife RowCount nehmen.
Zweitens ist Cells ein ZWEIDIMENSIONALES Array. Eine Zelle sprichst Du über Cells[Zeile, Spalte] an (in VBA wäre es Cells(Zeile, Spalte)). Wenn Du Cells als eindimensionales Array verwendest, schreibt Excel immer alles in die erste Zeile.
Drittens fragst Du immer nur die Erste Zeile der Datenmenge ab. Du musst innerhalb der ERSTEN Schleife jeweils mit Query1.Next weiterblättern.
Es wäre auch zweckmäßig, statt der äusseren for-Schleife mit
while not (Query1.Eof) ...
durch die Datenmenge zu blättern und eine Variable für die Zeile jeweils um 1 zu erhöhen. Dann bist Du vom Typ der Datenmenge unabhängig.