Esegui comandi Shell dalla cella di Excel


0

Ho un comando shell, per eseguire un programma con argomenti aggiuntivi.

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

La cella G3 contiene un indirizzo IP con cui desidero avviare il programma.

Non ho problemi ad avviare il comando da un pulsante di comando, ma ciò che desidero fare è avviare il programma con argomenti da una cella con collegamento ipertestuale, usando:

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

Ma il collegamento ipertestuale non può aprire il programma con argomenti opzionali.

Esiste un modo per aprire il programma dal collegamento ipertestuale con gli argomenti opzionali?

Risposte:


2

capito con VBA:

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

Ora faccio doppio clic su una cella nel foglio contenente l'IP e che eseguirà il mio programma con quell'IP.


0

I collegamenti ipertestuali Excel sono utili per l'apertura di pagine Web, file PDF o altri file compatibili con Microsoft Office. Ma ci sono alcuni problemi quando si utilizza un collegamento ipertestuale per aprire un file di comando come EXE, BAT, CMD, VBS, ecc. Ad esempio:

• È necessario negoziare una finestra di dialogo di avviso con i pulsanti OK / Annulla.

• Non è conveniente aggiungere argomenti da riga di comando, specialmente se dipendono da altre celle.

• Il percorso del file di comando potrebbe essere difficile da specificare, specialmente se il file Excel viene spostato.

• Quando viene specificato il collegamento di un file di comando, è necessario includerne il tipo (.LNK).

• Una finestra della shell lampeggerà quando vengono aperti file di script lunghi o complessi come CMD o VBS.

La tecnica qui descritta risolve questi problemi senza influire sui collegamenti ipertestuali standard di Excel: http://blog.contextures.com/archives/2017/09/14/excel-hyperlinks-run-command-files/

Questa soluzione aggiunge testo che assomiglia a RUN :: COMMAND nella cella del collegamento ipertestuale, quindi elabora quel testo utilizzando VBA aggiunto al codice evento FollowHyperlink del foglio di lavoro. Ad esempio, se viene visualizzata la cella del collegamento ipertestuale

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

quindi il file BAS specificato verrà aperto in Blocco note.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.