La macro que estoy creando toma nombres de una hoja de cálculo de Excel, abre Internet Explorer y busca en el directorio en línea. Después de buscar en el directorio, muestra un formulario Java con el nombre del administrador. Puedo tabular manualmente el nombre del administrador, hacer clic con el botón secundario, copiar el acceso directo y luego publicarlo nuevamente en la hoja de cálculo. Sin embargo, estoy teniendo problemas con las pestañas consistentes y copiando el atajo.Interacción de VBA con Internet Explorer
- ¿Hay alguna manera simple de volver a enfocar la ventana de IE?
- ¿Cómo se copia un atajo sin hacer clic manualmente sobre él?
Código:
Sub Macro1()
'
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate "****url****"
While ie.busy
DoEvents
Wend
ie.document.getElementById("SSOID").Value = "Z19516732"
ie.document.getElementById("Advanced").Checked = False
ie.document.all("Search").Click
'this loop is to slow the macro as the java form is filled from the search
For i = 1 To 400000000
i = i + 1
Next i
'ie.Object.Activate
ie.document.getElementById("Advanced").Checked = False
ie.document.getElementById("SSOID").Focus
Application.SendKeys "{TAB 6}" ', True
'bring up the control menu/right click
Application.SendKeys "+{F10}"
'copy shortcut is 8 items down on the list
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
Application.SendKeys "{DOWN}"
'enter was not working so the shortcut for the menu is 't'
'SendKeys "{ENTER}"
Application.SendKeys "{t}"
Windows("Book21").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub
intenté ese setForegroundWindow antes, pero esta vez funcionó, ¡Gracias! Sin embargo, la fuente html no muestra el enlace que se necesita. Aunque el enlace no es específicamente lo que necesito. Necesito el texto (El nombre del administrador), pero no puedo copiarlo con un clic derecho. ¿Tal vez hay una forma simple de resaltar el texto? Estaba planeando simplemente copiar y pegar el enlace y luego hacer algunas líneas rápidas para limpiar el nombre del formulario de enlace. – orangehairbandit
Gracias Gaffi!Esa primera parte con el enfoque de ventana funciona como impresionante. Como dije, lo intenté antes, pero debes haber tenido el toque mágico. A partir de la segunda parte de mi pregunta, crear atajo, encontré mi error. Por alguna razón, el ".Focus" que estaba usando para el compendio de búsqueda, simplemente estaba enfocando pero no seleccionando. Así que cuando lo cambié a ".select" y especificaba hte sendkeys con una aplicación.sendkeys "~" (La tecla enter), ¡todo se completó! ¡Mi primera vez aquí en stackflow como usuario, no solo como lector, es bastante desagradable! ¡Gracias! – orangehairbandit
@orangehairbandit ¡Me alegro de poder ayudar! – Gaffi