Das dürfte doch auch bei n=26 (und vielfachen davon) schief gehen.
Schreibtischtest:
für aIndex=26:
Result := chr(65 + aIndex mod 26) => chr(65 + 26 mod 26) => chr(65 + 0) => chr(65) => A
aIndex := aIndex div 26 => 26 div 26 => 1
if aIndex > 0 then => if 1>0 then => Wahr
Result := chr(64 + aIndex) + Result => chr(64+1)+CHR(65) => AA
Wieso schief gehen?
Ich fange mit dem Index = 0 an.
0 = A
1 = B
.
.
.
25 = Z
26 = AA
27 = AB
genau so bauche ich das. Und es funktioniert
Das war aber mal anders, Zitat aus #1:
Zitat:
result:=GetSpreadsheetColname(28); // -> Ergebnis = 'AB'
Ich bin daher davon ausgegangen, dass wie bei Excel üblich die erste Spalte, die Spaltennummer 1 hat und dann würde obiges schief gehen.