VBScript Activar spreadsheet abierta de Excel sin URL

Tengo un proyecto donde la aplicación se usará para múltiples hojas de cálculo y los formattings de nombres siempre serán diferentes. Quieren que use Archivo → Abrir en el menu para abrir una window donde seleccionan la spreadsheet de su escritorio. Tengo el código de VBScript para eso, pero no puedo activar el libro de trabajo para recostackr o ingresar datos.

WShell.SendKeys "%FO" objExcel.Wait (Now + TimeSerial(0, 0, 3)) For i = 1 to 3 WShell.SendKeys "+{TAB}" Next WShell.SendKeys "{HOME}" WShell.SendKeys "D" WShell.SendKeys "{ENTER}" MsgBox "Please select the file you want to open, then click OK to continue.", _ vbOKOnly+vbSystemModal, "Open File" WShell.SendKeys "{ENTER}" Set objWorkbook = ThisWorkbook objWorkbook.Sheets(1).Activate objWorkbook.Sheets(1).Cells(1, 1).Value = "Hello" 

Deseo Set objWorkbook = ThisWorkbook para activar el libro actual sin tener que usar su nombre o URL. ¿Puede alguien ayudarme con esto?

Descubrí cómo hacer que funcione. Necesitaba pasar por todas las hojas de cálculo abiertas de Excel para ver si estaba disponible la que acababa de abrir. NOTA: Esto solo funciona para una spreadsheet abierta, que es la que abre el cuadro de dialog Abrir.

 WShell.SendKeys "%FO" objExcel.Wait (Now + TimeSerial(0, 0, 3)) For i = 1 to 3 WShell.SendKeys "+{TAB}" Next WShell.SendKeys "{HOME}" WShell.SendKeys "D" WShell.SendKeys "{ENTER}" MsgBox "Please select the file you want to open, then click OK to continue.", _ vbOKOnly+vbSystemModal, "Open File" WShell.SendKeys "{ENTER}" On Error Resume Next Set objExcel = GetObject(,"Excel.Application") If Err.Number <> 0 Then ShowError ("Macro failed to get Excel object.") On Error GoTo 0 objExcel.Wait (Now + TimeSerial(0, 0, 1)) For Each WB In objExcel.Workbooks Set objWorkbook = WB Next objWorkbook.Sheets(1).Activate objWorkbook.Sheets(1).Cells(1, 1).Value = "Hello" 

Esto tomará la spreadsheet abierta e ingresará "Hola" en la celda A1.