Hintergrund:
Ich soll ein Dashboard (in Excel) mit vbscript erstellen und es über eine E-Mail (Outlook) an jemanden senden. Ich habe bereits eine Vorlage für das Dashboard (Excel). Mein Skript öffnet diese Vorlage Excel, aktualisiert das Excel mit den heutigen Ergebnissen und einige Hyperlinks zu einigen neuen Dateien, erstellt einen Excel-Mail-Umschlag und sendet es an jemanden.
PROBLEM:
Mein Skript fügt im Dashboard Excel zwei Hyperlinks hinzu. 1. Link zeigt auf eine MHT-Datei und 2. Link zeigt auf eine andere Excel-Datei. Ich schickte die Post an mich und öffnete sie. Nach dem Öffnen der E-Mail, wenn ich auf den 1. Link (zu MHT-Datei) klicke, funktioniert es gut und öffnet IE zum Anzeigen von MHT-Datei Inhalt. Problem ist mit dem 2. Hyperlink, der auf eine Excel-Datei zeigt. Es öffnet nicht die Excel-Datei (ich habe sichergestellt, dass der Link korrekt ist).
Gibt es etwas, das ich in meinem Code ändern muss? Gibt es eine Outlook-Einstellung, mit der ich den Link zu einer Excel-Datei direkt öffnen kann?
CODE:
%Vor%Screenshots:
Dies ist die E-Mail, die ich bekomme. Sie können sehen, es hat 2 Links und eine Excel-Datei als Anhang (Dieses angehängte Excel ist mein Dashboard (test.xlsx). Sein Inhalt ist identisch mit dem Inhalt dieses E-Mail-Körpers)
Wenn ich im E-Mail-Body auf den mht-Link klicke, öffnet sich der IE wie erwartet:
Aber wenn ich auf den Excel-Link klicke, öffnet sich nichts. Auch die Linkfarbe ändert sich beim Klicken nicht:
Wie habe ich sichergestellt, dass der Excel-Hyperlink korrekt ist?
Diese E-Mail hat eine Excel-Datei angehängt, die den gleichen Inhalt hat wie der E-Mail-Text. Ich öffnete das Excel und klickte dann auf den Hyperlink. Beide Hyperlinks funktionieren wie unten gezeigt. Aber ich möchte beide Links aus dem E-Mail-Text des Outlooks direkt öffnen (nicht so).
Ich habe versucht, so viele Informationen wie möglich zur Verfügung zu stellen. Bitte lassen Sie mich wissen, wenn weitere Informationen benötigt werden.
UPDATE 1:
Hier ist der E-Mail-Quelltext, wie von @garbb
angefordert %Vor%
UPDATE 2
So werden beide HyperLink-Formeln im Dashboard angezeigt Excel-Zellen:
MHTLINK (funktioniert über Dashboard Excel):
%Vor%EXLLINK (funktioniert über das Dashboard Excel):
%Vor%In Outlook, wie in der E-Mail-Quelle in Update 1 gezeigt, sind die Links:
MHTLINK (vom E-Mail-Körper aus arbeiten):
%Vor%EXLLINK (funktioniert NICHT vom E-Mail-Hauptteil):
%Vor%
UPDATE 3 (AUSGABE ROOT URSACHE)
In meinem VBScript-Code habe ich die Zeile:
%Vor% Dies erstellt einen Hyperlink zu Tabelle1 eines Excel-Buchs. Die Formel, die innerhalb dieser Zelle geschrieben wird, ist auch richtig, das ist =HYPERLINK("[C:\Users\Gurman\Work\Misc\Excel Hyperlink in Outlook\EXLFile.xlsx]Sheet1!A1","EXLLINK")
. Es ist wichtig für mich, Sheet1!A1
in dieser Formel hinzuzufügen, da der Hyperlink auf ein bestimmtes Blatt (in diesem Fall Sheet1) der Arbeitsmappe
DAS PROBLEM KOMMT, WENN DIESE EXCEL-FORMEL AUF EINEN LINK IN DER OUTLOOK-MAIL TRANSFORMIERT WIRD, wird sein Wert:
%Vor% Der obige Link scheint falsch zu sein, da er einige HEX-Werte wie %5b
, %5d
usw. hat. Daher funktioniert es nicht direkt.
Wenn ich meinen VBScript-Code ändere, um nur einen Hyperlink zu der Excel-Arbeitsmappe zu erstellen, statt einen Hyperlink zu seinem "Sheet1" zu erstellen, funktioniert es gut und ich kann den Excel-Arbeitsmappe-Link auch direkt aus der E-Mail öffnen.
Aktualisierte Zeile in VBscript:
%Vor%In der E-Mail-Quelle wurde es in Folgendes umgewandelt:
%Vor%Ich kann die Excel-Arbeitsmappe über diesen Link direkt von der E-Mail aus öffnen. Aber der Fehler bei diesem Ansatz ist, dass Sheet1 in diesem Fall möglicherweise geöffnet wird oder nicht. Sobald jemand auf den Hyperlink klickt, öffnet sich Sheet2 statt Sheet1. Daher wollte ich dieses Ding in meinem Code selbst behandeln.
Also, meine Frage / Problem ist immer noch ungelöst:
Ist es möglich, einen Hyperlink im Outlook-E-Mail-Text zu haben, der ein bestimmtes Blatt einer Excel-Arbeitsmappe öffnet?
Datei: /// c: \ IhrPfad \ IhrDateiname.xlsm # IhrBlattName! A1
Dies kann in einer Outlook-E-Mail verwendet werden. Wenn Sie auf den Link klicken, wird c:\yourPath\yourFileName.xlsm
auf dem Arbeitsblatt yourSheetName
geöffnet und die Zelle A1
ausgewählt.
( Quelle )
(Ich kann diese nicht testen, aber eine oder beide Methoden sollten funktionieren.)
file: /////server/path/to/file.txt
(das sind fünf Schrägstriche!)
oder
file: //server/path/to/file.txt
( Quelle )
Eine andere Möglichkeit, wenn die E-Mail im HTML-Format ist, wäre in etwa so (was z. B. eine feinere Formatierung wie eine QuickInfo usw.) beinhalten könnte:
( Quelle )
Okay , Sie haben bisher gute Arbeit geleistet, Informationen zu sammeln, so Ich hatte gehofft, dass Sie mit ein paar Tagen mehr Nachforschungen anstellen und es herausfinden würden ...:)
Ehrlich gesagt, bin ich mir nicht sicher, welche Methode genau genau zu tun ist, aber ich kenne die Schritte, die ich unternehmen würde, um herauszufinden > - und basierend auf meiner Erfahrung ist es schwer vorherzusagen, wie viel Zeit der Prozess in Anspruch nehmen wird, unabhängig davon, ob das Problem einfach oder komplex ist.
Basierend auf Stack Overflows " helfen Ihnen bei bestimmten Problemen, nicht die Arbeit für Sie " Principal, werde ich die Schritte teilen, die ich als nächstes nehmen würde, geben Sie uns Updates über was Sie lernen , stellen Sie spezifische Fragen zu dem, was Ihnen begegnet, und schreiben Sie die Arbeitslösung auf jeden Fall, wenn alles klar ist, um anderen zu helfen, die das gleiche spezifische Problem haben. :-)
Eine schöne Sache mit Codierung (vor allem mit Office) ist, dass es fast immer mehrere (völlig unterschiedliche) Wege zu erreichen das gleiche Endergebnis. Einige der Wege werden besser dafür geeignet sein bestimmte Aufgaben als andere, andere könnten vollständig sein austauschbar.
Die Entscheidung, welche Methode zu verwenden ist, kann von vielen Dingen beeinflusst werden (einige offensichtlich, einige unvorhergesehene) wie der Umfang des Projekts, Sicherheit Anforderungen, Kenntnisstand des Entwicklers & amp; Endverbraucher, Fristen, wie oft es verwendet wird und / oder benötigt wird Änderungen und so weiter. Deshalb ist die beste Person zu entscheiden, Sie Entwickler.
Irgendwelche Tipps oder Code von anderen (einschließlich mir) auf einer solchen Seite werden auf Annahmen basieren, von denen wir vielleicht gar nicht wissen, dass wir sie machen, da niemand die "ganze Situation" besser kennt als Sie. ( Askers & amp; Beantworter werden oft die durch die XY-Problem .
.Mein Punkt: Ein gängiger Schritt bei der Entwicklung eines Codeabschnitts für die Ausführung einer Aufgabe besteht darin, den Inhalt zu löschen und neu zu beginnen. (Sicher bin ich nicht der Einzige, der das macht, oder?!)
... und es gibt viele Gründe dafür, dass es eine schlechte Übung ist. Für den Anfang ist es eine Verschwendung von Bandbreite und Speicherplatz (ein bisschen wie separate VHS-Kopien von Home Alone 3 für jeden Fernseher in Ihrem Haus), aber Sie können wahrscheinlich daran denken andere Gründe auch (ein großer ist, dass es nicht funktioniert .)
Wenn ich es richtig verstehe, öffnest du eine Datei, lege zwei Links in Zellen in dieser Datei, schließst sie, setzt die gleichen Links in den Text der E-Mail und sendest sie an eine Menge Leute?
>Ein Hauptzweck der Programmierung besteht darin, sich wiederholende / redundante Aufgaben oder "Dinge" vollständig zu entfernen , nicht nur, um Ihre Handhabung zu automatisieren.
Oh man , sag mir, dass niemand jeden in einem Ordner mit dem Datum als Dateiname für historische Aufzeichnungen speichert. Und ich hoffe, dass jeder Benutzer das nicht separat macht. Und einige Leute drucken jeden Tag Bericht? Sicher nicht ... (Ich habe eine Rückblende auf einen früheren Regierungsjob!))
Je nachdem, was ich denke ist Ihr Endziel, sollten Sie über E-Mails insgesamt vergessen , die Datei (en) an einem freigegebenen Speicherort veröffentlichen und einen Link teilen. Dies kann ein freigegebener Speicherort im internen Netzwerk sein, oder wenn alle keinen Zugriff auf das Netzwerk haben, dann einen öffentlichen Speicherort für die Dateifreigabe (OneDrive ist eine von vielen kostenlosen Optionen).
Sie müssen nur einen Link (nur einmal!) mit jedem teilen, der Zugriff benötigt.
Sie wissen sicher, dass alle dieselbe Version betrachten.
Sie könnten so oft oder so oft wie nötig aktualisieren, sogar unregelmäßig, oder Sie können die Datei bei Bedarf sofort entfernen. (Hoppla! Es gab einen großen Fehler bei dem, den wir heute morgen ausgesendet haben! Jeder hört auf, es jetzt anzusehen!)
Sie können bei Bedarf Berechtigungen hinzufügen / entfernen. Vielleicht könnten einige Benutzer von der Möglichkeit profitieren, die Datei zu ändern, während es anderen nicht erlaubt sein sollte. (Lehnen Sie sich zur zweiten Option hin, es sei denn, die erste ist vorteilhaft.)
Wenn jemand die Datei druckt, lassen Sie sie anhalten! Es gibt Gründe dafür, dass die Gesellschaft als Ganzes nahezu papierlos ist. Neben dem Speichern von Bäumen gelten einige der Gründe, warum nicht mehrere Kopien der gleichen Datei haben, nur schlimmer, da falsche Papierkopien noch schwerer zu entfernen sind.
Es gibt viele andere Vorteile ... aber das ist nur eine Option. Sie gaben Ihrer Vertriebsmethode eine gute Idee. versucht, es funktioniert (wie andere für Sie), aber manchmal die richtige Antwort auf eine andere Frage.
Holen Sie sich weitere Ideen, indem Sie etwas Zeit mit Googeln von:
verbringenSo teilen Sie ein Diagramm mit anderen
Sicherheit für freigegebene Dateien
Wie verbreitet ähnliche Firma xyz Berichte?
Weitergabe vertraulicher Excel-Daten in öffentlichen Netzwerken
Warum ist es so schlecht, tägliche Berichte per E-Mail zu versenden?
Geschäftliche E-Mail-Etikette
So vermeiden Sie, dass Ihre Empfänger überlastet werden
Erstellen & amp; verteilen Sie Berichte, die Personen wollen lesen
... usw. ...
.
Oder ich könnte mit dem Warum / Wann / Wie / Wo / Wer auf der völlig falschen Fährte sein, aber das ist alles, was ich habe mit dem, was ich von Ihrem Problem verstanden habe.
Tags und Links outlook excel excel-vba outlook-vba vbscript