Ausführen von Shell-Befehlen aus einer Excel-Zelle

Ausführen von Shell-Befehlen aus einer Excel-Zelle

Ich habe einen Shell-Befehl, um ein Programm mit zusätzlichen Argumenten auszuführen.

Shell "C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3")

Die Zelle G3 enthält eine IP-Adresse, mit der ich das Programm starten möchte.

Ich habe keine Probleme damit, den Befehl über eine Befehlsschaltfläche zu starten. Ich möchte das Programm jedoch mit Argumenten aus einer per Hyperlink verknüpften Zelle starten, und zwar mithilfe von:

= HYPERLINK("C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3"))

Aber der Hyperlink kann das Programm mit optionalen Argumenten nicht öffnen.

Gibt es eine Möglichkeit, das Programm mit optionalen Argumenten über einen Hyperlink zu öffnen?

Antwort1

habe es mit VBA herausgefunden:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("range here")) Is Nothing Then
   Call Shell("program location" & " " & Target)
Else

Jetzt doppelklicke ich auf eine Zelle im Blatt, die die IP enthält, und mein Programm wird mit dieser IP ausgeführt.

Antwort2

Excel-Hyperlinks eignen sich gut zum Öffnen von Webseiten, PDF-Dateien oder anderen Dateien, die mit Microsoft Office kompatibel sind. Es gibt jedoch bestimmte Probleme bei der Verwendung eines Hyperlinks zum Öffnen einer Befehlsdatei wie EXE, BAT, CMD, VBS usw. Beispiel:

• Ein Warndialogfeld mit OK/Abbrechen-Schaltflächen muss ausgehandelt werden.

• Es ist nicht praktisch, Befehlszeilenargumente hinzuzufügen, insbesondere wenn sie von anderen Zellen abhängen.

• Der Pfad der Befehlsdatei kann schwierig anzugeben sein, insbesondere wenn die Excel-Datei verschoben wird.

• Wenn die Verknüpfung einer Befehlsdatei angegeben wird, muss ihr Typ (.LNK) angegeben werden.

• Wenn lange oder komplexe Skriptdateien wie CMD oder VBS geöffnet werden, blinkt ein Shell-Fenster.

Die hier beschriebene Technik behebt diese Probleme, ohne die Standard-Excel-Hyperlinks zu beeinträchtigen:http://blog.contextures.com/archives/2017/09/14/excel-hyperlinks-run-command-files/

Diese Lösung fügt der Zelle des Hyperlinks Text hinzu, der wie RUN::COMMAND aussieht, und verarbeitet diesen Text dann mit VBA, das dem FollowHyperlink-Ereigniscode des Arbeitsblatts hinzugefügt wird. Wenn die Zelle des Hyperlinks beispielsweise anzeigt

This cell is a hyperlink to RUN::"Notepad.exe" "SomeFilePath.BAS"

dann wird die angegebene BAS-Datei im Editor geöffnet.

verwandte Informationen