VBA & Excel: ler em uma planilha fechada

Faça uma pergunta
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 isto, sem utilizar a conexão OLE DB, porém unicamente para leitura.


Em nossa planilha de Recap, nós precisamos ter as informações situadas no espaço de células A1:F10 da Plan1 de uma planilha fonte, ela mesma situada no diretório
C:\Pijaku\Não_faz_nada_de_seus_dias\CCM\
. Então, para começar, abrimos uma planilha, Pijaku em Plan1 da célula A1 na célula F10 e registramos como fonte.xls no diretório:
C:\Pijaku\Não_faz_nada_de_seus_dias\CCM\
. Fechemos esta planilha e abrimos uma segunda planilha Excel salvas como Recap.xls, no desktop (por exemplo).

O método pelo Excel

Na sua planilha Recap.xls: insira um nome definido no menu Inserir, escolha Nome e clique em Definir.

Nomes na planilha => type: range. Fazer referência à > digitar
='C:\Pijaku\Não_faz_nada_de_seus_dias\CCM\[source.xls]Plan1'!$A$1:$F$10
. Clicar em Adicionar. Na sua planilha, na coluna A1 digitar a fórmula =intervalo e validar. Estender esta fórmula sobre todo o espaço de A1 a F10.

O código VBA correspondente

Sub ImportarDadosSemAbrir()  
Dim Caminho As String, Arquivo As String
Caminho = "C:\Pijaku\Não_faz_nada_de_seus_dias\CCM\"
Arquivo= "source.xls"
ThisWorkbook.Names.Add "intervalo", _
RefersTo:="='" & Caminho & "[" & Arquivo & "]Folh1'!$A$1:$F$10"
With Sheets("Folh2")
.[A1:F10] = "=intervalo"
.[A1:F10].Copy
Sheets("Folh1").Range("A1").PasteSpecial xlPasteValues
.[A1:F10].Clear
End With
End Sub

Precauções do uso

Verifique o caminho de acesso ao diretório, a ortografia e a quebra, que são detalhes importantes. Veja também o \ entre o caminho do diretório e o nome da planilha.

Foto: © Microsoft.
Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM