Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Sonderzeichen Hochkomma ' (https://www.delphipraxis.net/187100-sonderzeichen-hochkomma.html)

ngott2 28. Okt 2015 06:28

Sonderzeichen Hochkomma '
 
Hallo liebe Delphi Community,
ich schreibe gerade eine Routine für Datenexport. Sie erzeugt ein Excel Dokument.
In den Excel Dokument sollen die einzelnen Tabsheets miteinander verlinkt werden via Hyperlink.

Das ist der String den ich übergebe. " '=HYPERLINK(#39 + getBez(lindex)+ #39+ '!Z22S2;"'+AValue.nummer+'")' "
Wenn ich den String anschließend Auswerte habe ich wo #39 steht aber 2 Hochkomma statt eins. Damit kann Excel aber leider nicht umgehen.
Hat jemand eine Idee warum das so ist ?

Dejan Vu 28. Okt 2015 06:35

AW: Sonderzeichen Hochkomma '
 
Bei Strings mit Hochkomma kommt es auf jedes einzelne Zeichen an. Poste mal den Code, der den String erstellt und speichert.

ngott2 28. Okt 2015 06:38

AW: Sonderzeichen Hochkomma '
 
Code:
lDummy := '=HYPERLINK('+ #39 + getBez(lindex)+ #39 + '!Z22S2;"'+AValue.nummer+'")';
fexcel.ActiveWorkSheet.Cells[fRowIndexProfile,32 + lIndex].Formula := lDummy;




function getBez (aTabSheetIndex: Cardinal): string;
begin
   case aTabSheetIndex of
      1:
        Result := 'Artikel';
      2 .. 11:
          Result := 'Verbinder' + IntToStr(aTabSheetIndex-1);
      12 .. 21:
        Result := 'Andere-Verbinder ' + IntToStr(aTabSheetIndex-11);
  end;

end;
aValue.Nummer := 16 Zeichen ohne Sonderzeichen

baumina 28. Okt 2015 07:01

AW: Sonderzeichen Hochkomma '
 
Zeigst du uns bitte auch noch das Ergebnis, das du erwartest und das das in Excel in der Zelle ankommt?

ngott2 28. Okt 2015 07:06

AW: Sonderzeichen Hochkomma '
 
=HYPERLINK(''Eckverbinder 1''!Z(-7)S;"test") den String habe ich.
=HYPERLINK('Eckverbinder 1'!Z(-7)S;"test") Den String möchte ich haben.

Dejan Vu 28. Okt 2015 07:09

AW: Sonderzeichen Hochkomma '
 
Delphi zeigt Dir nur zwei ' an. Du siehst also:
Code:
'HYPERLINK([COLOR="yellow"]''[/COLOR]Artikel[COLOR="Yellow"]''[/COLOR]!Z2S2;"16ZeichenOhneSonderzeichen"
Alles ist richtig. Um hier mehr Sicherheit zu bekommen, das dein String richtig ist, würde ich erstens Format verwenden und zweitens die Hochkomma über 'QuotedStr' erzeugen.

Delphi-Quellcode:
sheetName := GetBez(lIndex);
myExcel := Format('=HYPERLINK(%s!Z2S2"%s"',[QuotedStr(sheetName), Avalue.Nummer]);
// oder so, ohne QuotedStr
myExcel := Format('=HYPERLINK(''%s''!Z2S2"%s"',[sheetName, Avalue.Nummer]);
PS: Um sicher zu gehen, den string einfach mal mit ShowMessage anzeigen lassen.

ngott2 28. Okt 2015 07:34

AW: Sonderzeichen Hochkomma '
 
Liste der Anhänge anzeigen (Anzahl: 1)
In der Messagebox wird der String aber auch falsch angegeben. Getest mit myExcel := Format('=HYPERLINK(''%s''!Z2S2"%s"',[sheetName, Avalue.Nummer]);

baumina 28. Okt 2015 07:40

AW: Sonderzeichen Hochkomma '
 
sheetName ist wohl in diesem Fall leer? Und das ; fehlt auch?

ngott2 28. Okt 2015 07:55

AW: Sonderzeichen Hochkomma '
 
Upps ja das stimmt lsheetName war leer. Funktioniert jetzt.
Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz