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.
Jetzt war ich so tief in meinen Hirnwindungen das ich das total überlesen haben, die Sache mit dem Z dranhängen hatte ich auch versucht, aber ich habe anscheinend nicht den richtigen Weg genommen, schaue mir das nochmal genauer an. Dir natürlich auch Danke für die Antwort.
LG