Zwei Möglichkeiten, die helfen könnten:
Delphi-Quellcode:
if VarIsEmpty(RangeMatrix[K, R]) then begin
AGrid.Cells[(r - 1), (k - 1)] := '<leer>'; // bzw. einfach := '';
end else begin
AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R];
end;
oder (unelegant)
AGrid.Cells[(r - 1), (k - 1)] := RangeMatrix[K, R] + '';
Jumpys Variante gefällt mir besser, wenn dort der Fehler weiterhin auftritt, wäre er in der Zeile zu vermuten:
AGrid.Cells[(row - 1), (col - 1)] := Sheet.Cells[row,col].value;
Hier würd' ich erstmal ein Try except drum bauen und in 'ner Fehlermeldung row und col ausgeben und dann mal in der Exceltabelle nachschauen, was denn da drinne steht, eventuell kann man mit dem Wissen ja dann etwas besser für eine sinnvolle Fehlerbehandlung sorgen.
Delphi-Quellcode:
try
AGrid.Cells[(row - 1), (col - 1)] := Sheet.Cells[row,col].value;
except
on e :
exception do begin
ShowMessage(Format('
row: %d, col: %d',[row,col]));
end;
end;