Im Falle von 52 und aller anderen vielfachen von 26 ist AColumn mod 26 = 0 und das Ganze bricht ab. Mit der folgenden Änderung würde es glaub ich funktionieren:
Delphi-Quellcode:
function MS_EXCEL_ConvertColumn(AColumn: Integer):
String;
begin
Result := '
';
while AColumn > 0
do
begin
if AColumn <= 26
then
begin
Result := Result + Chr(AColumn + 64);
Dec(AColumn, 26);
end
else
begin
Result := Result + Chr((AColumn -27)
div 26 + 65);
// Mit dieser umgeschrieben Zeile habe ich schon mal bei 'AZ' nur A statt B, jetzt fehlt mir noch das Z dahinter
AColumn := AColumn
mod 26;
if AColumn=0
then
Result:=Result+'
Z';
end;
end;
Hier bitte aber bedenken, dass das nur bis Spalte ZZ funktioniert (=27*26 Spalten). Excel geht aber mittlerweile bis XFD, d.h. wenn da mal Gefahr besteht, das ihr so richtig viele Spalten braucht, muss die Funktion nochmal verbessert werden.