Используя команду ExecuteExcel4Macro в VBA, вы можете получить доступ к данным в файлах Excel, не открывая сам файл.Недостатком является то, что вы должны знать конкретный диапазон, который вы ищете, но, похоже, это может быть для вас.
Например:
Private Function GetCellFromClosedFile(ByVal wbPath As String, wbName As String, wsName As String, _
rowref As Long, colref As Long) As Variant
'Fetches the value of a single cell in a closed workbook
Dim val As String
GetCellFromClosedFile = "" 'Clears old value
If Right(wbPath, 1) <> "" Then wbPath = wbPath & "" 'Clears path string
If Dir(wbPath & "" & wbName) = "" Then Exit Function 'If no new path exit
'Returns single cell - can only return a single cell - use ADO to get a range
val = "'" & wbPath & "[" & wbName & "]" & wsName & "'!" & _
Range(Cells(rowref, colref), Cells(rowref, colref)).Address(True, True, xlR1C1)
On Error Resume Next
GetCellFromClosedFile = ExecuteExcel4Macro(val)
End Function