VBA & Excel: ler em uma planilha fechada

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.
Artigo original publicado por jak58. Tradução feita por ninha25. Última modificação: 9 de novembro de 2017 às 13:12 por Pedro.CCM.
Este documento, intitulado 'VBA & Excel: ler em uma planilha fechada ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (https://br.ccm.net/) ao utilizar este artigo.
VBA - Excel Mover qualquer tipo de arquivo
Excel 2007 - Inserir uma imagem com transparência