![]() |
Excel -> Hyperlink -> witz?
Hallo?
Naja... ich versteh nicht warum ein code einen ganzen tag lang funktioniert und dann gehts am nächsten tag nimmer. -.- Und zwar öffne ich Excel, suche mit folgendem Code einen hyperlink:
Delphi-Quellcode:
und dann möchte ich mit folgendem Code das Verzeichnis öffnen:
try
Excel.Workbooks.Open('K:\2011\1_Projekte\12_Tomi\Werkstattnummern_2011.xlsx'); //open the excel workbook if Excel.Range['I863', 'I863'].Hyperlinks.Count > 0 then //check if exist hyperlinks in the range pfad := Excel.Range['I863', 'I863'].Hyperlinks[1].Address; ShowMessage(Excel.Range['I863', 'I863'].Hyperlinks[1].Address); //show the hyperlink finally // end;
Delphi-Quellcode:
und es passiert nichts -.- ... das ist doch ein witz oder?
ShellExecute(0, 'open', PChar(pfad), nil, nil, SW_ShowNormal);
|
AW: Excel -> Hyperlink -> witz?
Was steht denn in "pfad" drin?
[edit] Und was gibt ShellExecute zurück? [/edit] |
AW: Excel -> Hyperlink -> witz?
In pfad steht ../../../Pfad
Wie seh ich nach was ShellExecute zurückgibt? Wenn ich in excel den Hyperlink anklicke dann öffnet er den Pfad |
AW: Excel -> Hyperlink -> witz?
Merk Dir doch den Rückgabewert von ShellExecute und lass ihn Dir ausgeben.
Delphi-Quellcode:
Wert := ShellExecute(...);
if Wert < 33 then ShowMessage('Fehler ' + IntToStr(Wert)); |
AW: Excel -> Hyperlink -> witz?
Hi Danke!
Fehler 2 meldet er -.- |
AW: Excel -> Hyperlink -> witz?
Ich dachte mir schon, dass da 2 (File not found) oder 3 (Path not found) zurückkommt. Hast Du einmal versucht, die relativen Pfade in absolute umzuwandeln? Es wird ja versucht, vom aktuellen Arbeitsverzeichnis 3 Ebenen höher und dann in das angegebene Verzeichnis zu kommen. Wenn das Arbeitsverzeichnis also nicht stimmt, kann das nicht funktionieren.
|
AW: Excel -> Hyperlink -> witz?
Naja.. ich habs mir eh schon gedacht weils ../../../ aber es hat letzte woche funktioniert... und wenn ich auf den hyperlink direkt im Excel-sheet klick öffnet ers auch..
|
AW: Excel -> Hyperlink -> witz?
Was Excel macht, weiß ich nicht, jedenfalls können relative Pfade zu unerwarteten Ergebnissen führen, wie man hier wieder sieht. Das aktuelle Arbeitsverzeichnis kann ja z.B. durch einen OpenDialog o.ä. geändert worden sein. Wenn Dir jemand sagt: "Geh in den 4. Stock und klingel bei Zaphod Bebblebrox" funktioniert das ja auch nur, wenn Du in der Arthur-Dent-Str. 42 bist, in der Marvin-Allee 3 wird das wahrscheinlich nicht klappen.
|
AW: Excel -> Hyperlink -> witz?
Okay, jetzt versteh ichs.. aber jedoch bekomme ich wenn ich in Excel die Hyperlinks ansehe.. bei allen eine relativen pfad.
|
AW: Excel -> Hyperlink -> witz?
Wie gesagt: ich habe Excel nicht programmiert und weiß daher nicht, was dort bei relativen Pfaden gemacht wird. Anscheinend werden diese dort auch in absolute (ausgehend vom eigenen Verzeichnis der Datei) umgewandelt, aber das ist reine Spekulation meinerseits.
|
AW: Excel -> Hyperlink -> witz?
Zitat:
Probier einfach mal
Delphi-Quellcode:
um die korrekte URL zu haben.
ExtractdFilePath(<GeöffneteExcelDatei) + "\" + <Relative Pfadangabe>
|
AW: Excel -> Hyperlink -> witz?
ExtractFilePath enthält bereits den abschließenden Backslash, im Gegensatz zu ExtractFileDir ;)
|
AW: Excel -> Hyperlink -> witz?
Zitat:
|
AW: Excel -> Hyperlink -> witz?
Okay, jetzt habe ich gegooglet um eine lösung zu finde, jedoch ohne erfolg -.-
Wie schaffe ich eine umwandlung zur absoluten pfadangabe? |
AW: Excel -> Hyperlink -> witz?
Wie Bernhard bereits schrieb: Pfad zur *.xls und dann einfach die relative Pfadangabe dahinter, das kann ruhig so aussehen: C:\Program Files\Bla\Blubb\Wuppdi\..\..\Datei.ext (das wäre dann Datei.ext in C:\Program Files\Bla).
|
AW: Excel -> Hyperlink -> witz?
Ja, das hab ich auch gegooglet.. jedoch funktioniert auch nicht und ShellExecute bringt wieder den fehler das er die datei nicht finden kann -.-
|
AW: Excel -> Hyperlink -> witz?
Hast Du Dir den so zusammengebauten Pfad einmal ausgeben lassen? Existiert die Datei auch wirklich dort?
|
AW: Excel -> Hyperlink -> witz?
Ja hab ich... und wenn ich den kopier und in den Explorer einfüge, findet er diesen auch nicht.
|
AW: Excel -> Hyperlink -> witz?
Das bedeutet dann ja, dass irgend etwas nicht stimmt. Wie setzt Du den Pfad denn zusammen?
|
AW: Excel -> Hyperlink -> witz?
Also ich hab den root pfad bis zum zweiten unterverzeichnis.... mit dem was ich aus Excel rausbekomme zusammen gestetzt
Beispiel: K:\Neuer Ordner1\Neuer Ordner2\....\..\..\Neuer OrdnerX\Neuer OrdnerX\ |
AW: Excel -> Hyperlink -> witz?
Sind da wirklich einmal 4 Punkte hintereinander? Das sieht irgendwie komisch aus. Funktioniert es, wenn Du da noch einen Backslash dazwischensetzt?
|
AW: Excel -> Hyperlink -> witz?
Zitat:
K:\Neuer Ordner1\..\..\..\ K:\..\..\ alleine wäre imho auch schon kein gültiger Pfad :gruebel: |
AW: Excel -> Hyperlink -> witz?
A, Nein, hab mich verpunktet :) nur zwei.
|
AW: Excel -> Hyperlink -> witz?
jedoch funktioniert dies auch nicht -.-
|
AW: Excel -> Hyperlink -> witz?
Den berechtigten Einwand von BUG hast Du aber gelesen?
|
AW: Excel -> Hyperlink -> witz?
Es sieht ja so aus als ob die Exceldatei wie folgt heißt:
K:\2011\1_Projekte\12_Tomi\Werkstattnummern_2011.x lsx Wenn der relative Pfad (im Link) nun wie folgt ist: ..\..\..\Neuer OrdnerX\Neuer OrdnerX\ Müsste der absolute Pfad den du haben willst, wie folgt sein: K:\2011\1_Projekte\12_Tomi\..\..\..\Neuer OrdnerX\Neuer OrdnerX\ K:\2011\1_Projekte\..\..\Neuer OrdnerX\Neuer OrdnerX\ K:\2011\..\Neuer OrdnerX\Neuer OrdnerX\ K:\Neuer OrdnerX\Neuer OrdnerX\ Haut das hin? Wenn nicht, wäre es sicher hilfreich, wenn du mal alle Pfade angeben würdest.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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