Hallo,
bist du sicher, dass der Fehler im gezeigten Code auftritt? Bei welcher Zeile?
Dein Code geht durch die Zellen der ersten Zeile eines WorkSheets, überspringt einzelne Leerzellen und stoppt, wenn zwei aufeinander folgende leere Zellen gefunden werden. Willst du das wirklich?
Wenn eine einzelne Leerzelle das Abbruchkriterium darstellt, dann ist eine kopfgesteuerte Schleife (while) passender:
Delphi-Quellcode:
const
FMT = 'Line %d: %s';
var
iCol: Integer;
s: string;
begin
iCol := 1;
while Sheet.Cells.Item[1, iCol].Value <> Null do
begin
s := Sheet.Cells.Item[1, iCol].Value;
Memo.Lines.Add(Format(FMT, [iCol, s]));
Inc(iCol);
end;
end;
Getippt und nicht getestet. Insbesondere den Test zum Abbruch der Schleife kann ich nicht überprüfen, da ich kein Excel installiert habe.
Ansonsten gibt es da noch Cells.SpecialCells(xlCellTypeLastCell, EmptyParam). Damit kannst du die letzte verwendete Zeile und Spalte feststellen.
Grüße vom marabu