No VBA, as diferentes técnicas de leitura de dados em um arquivo Excel são bastante redundantes pela sua complexidade. No entanto, existe uma pequena dica que permite contornar esse problema sem utilizar a conexão OLE DB, porém unicamente para leitura.
Se você quiser ler uma planilha fechada, existe um código específico para isso, exigindo apenas que você realize pequenas alterações com base nas especificidades do seu arquivo, como local de armazenamento e nome.
Para fazer isso, o que você deverá fazer é abrir o Excel e ir na aba Desenvolvedor > Visual Basic:
Na interface do VBA, agora clique em Inserir > Módulo:
Por fim, na janela em branco que aparece na tela, cole o comando a seguir. Não deixe de fazer os ajustes devidos:
Sub ReadDataFromAllWorkbooksInFolder()
Dim FolderName As String, wbName As String, cValue As Variant
Dim wbList As String, sValuePlan1 As String
'Path (Diretorio) -Ajustar o Caminho
FolderName = "C:\Foldername"
'Nome do Arquivo de onde extrairemos a informação
wbName = Dir(FolderName & "\" & "Teste.xls")
'Armazenamos nas Variaveis
wbList = wbName
wbName = Dir
'le o Valor no workbook
cValue = GetInfoFromClosedFile(FolderName, wbList, "Plan1", "A1")
'Msgbox com o Valor em A1
MsgBox "O Valor em A1 - Plan1 é :- " & cValue
'Armazenamos o Valor na variavel
sValuePlan1 = cValue
'Coloca o Valor na Celula
Cells(1, 1).Formula = cValue
End Sub
Private Function GetInfoFromClosedFile(ByVal wbPath As String, _
wbName As String, _
wsName As String, _
cellRef As String) As Variant
Dim arg As String
GetInfoFromClosedFile = ""
If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"
If Dir(wbPath & "\" & wbName) = "" Then Exit Function
arg = "'" & wbPath & "[" & wbName & "]" & _
wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1)
On Error Resume Next
GetInfoFromClosedFile = ExecuteExcel4Macro(arg)
End Function
Foto: © RoSonic - Shutterstock.com