Pregunta

¿Alguien sabe cómo llamar al diálogo integrado de importar datos desde una macro (vba)?

He intentado con Application.Dialogs.Item (...). Show pero no puedo encontrar el diálogo correcto. Por favor ayuda.

Gracias de antemano.

¿Fue útil?

Solución

Lo más cercano que puedo encontrar usando el sistema de diálogo es:

Application.Dialogs(xlDialogImportTextFile).Show

Puede obtener una referencia al botón de la barra de comandos (al menos para mí en 2k3 y 2k7) a través de:

Set button = Application.CommandBars.FindControl(ID:=6262)

Pero al llamar al método Execute en el botón falla. Lamentablemente, la respuesta corta parece ser que no es posible.

Puedes agregar objetos QueryTable a mano. Si bien no es una ruta óptima, puede diseñar su propia interfaz simple para seleccionar los datos de origen.

Otros consejos

Si elige el Examinador de objetos y busca, por ejemplo, xlDialogImportTextFile, obtendrá una lista de posibles diálogos.

EDITAR: Quizás algo en estas líneas sería adecuado:

'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

No creo que haya un equivalente de VBA, porque en un caso está devolviendo datos a una hoja de cálculo, mientras que en el otro caso, los datos se colocan en un conjunto de registros en la memoria.

Este kludge debería abrir el diálogo por ti, sin embargo:

SendKeys "%ddd"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top