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.

È stato utile?

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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top