Schon ganz schön alt der Thread?
Aber die Antwort aus Post #2 hast'e gut aufgezeigt.
Wäre nur praktisch, wenn deine Umsetzung korrekt wäre.
Zitat:
A1
B1
...
X1
Y1
AA1
AB1
...
Oder sieht diese Folge richtig aus?
Tipp: 27 oder <=
Ein Einzeiler:
Result := IfThen(Col > 26, Chr(Ord('A') + (Col - 27) div 26), '') + Chr(Ord('A') + (Col - 1) mod 26) + IntToStr(Row);
Oder etwas übersichtlicher:
Delphi-Quellcode:
function RefToCell(Row, Col: Integer; WithRow: Boolean = False):
string;
begin
Dec(Col, 1);
Result := Chr(Ord('
A') + Col
mod 26);
if Col >= 26
then
Result := Chr(Ord('
A') + Col
div 26 - 1) + Result;
if WithRow
then
Result := Result + IntToStr(Row);
end;