Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Excel,Spaltenkonvertierung, Übergang zu nächstem Buchstaben

  Alt 8. Sep 2015, 10:00
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.
Ralph
  Mit Zitat antworten Zitat