Finestre di dialogo integrate di Excel
Domanda
Qualcuno sa come chiamare la finestra di dialogo integrata import data
da una macro (vba)?
Ho provato Application.Dialogs.Item (...). Mostra
ma non riesco a trovare la finestra di dialogo corretta.
Per favore aiutate.
Grazie in anticipo.
Soluzione
Il più vicino che riesco a trovare usando il sistema di dialogo è:
Application.Dialogs(xlDialogImportTextFile).Show
Puoi ottenere un riferimento al pulsante della barra dei comandi (almeno per me in 2k3 e 2k7) tramite:
Set button = Application.CommandBars.FindControl(ID:=6262)
Ma la chiamata del metodo Execute
sul pulsante fallisce. Purtroppo, la risposta breve sembra essere che non è possibile.
È possibile aggiungere manualmente oggetti QueryTable. Pur non essendo un percorso ottimale, potresti progettare la tua semplice interfaccia per la selezione dei dati di origine.
Altri suggerimenti
Se scegli il browser degli oggetti e cerchi, ad esempio, xlDialogImportTextFile, otterrai un elenco di possibili finestre di dialogo.
EDIT: Forse qualcosa su queste righe andrebbe bene:
'Allow user to select text file
sf = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If sf <> False Then
'Open text file
Workbooks.OpenText sf
End If
Non credo che ci sia un equivalente VBA, perché in un caso si stanno restituendo dati a un foglio di lavoro, mentre nell'altro caso, i dati vengono inseriti in un recordset in memoria.
Questo kludge dovrebbe far apparire la finestra di dialogo per te, tuttavia:
SendKeys "%ddd"