VBA & Excel: ler em uma planilha fechada

Dezembro 2016

No VBA, as diferentes técnicas de leitura de dados em um arquivo Excel são bastante redundante 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.

Nós temos necessidade, em nossa planilha de Recap, ter as informações situadas no espaço de células A1 :F10 da folha Folh1 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 Folh1 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 e a registremos como Recap.xls, no desktop (por exemplo).

O método, através do Excel:

Na sua planilha Recap.xls insira um nome definido, no menu Inserção escolha Nome e clique em Definir.
Nomes na planilha > digitar: espaço. Faça referência à > digitar ='C:\Pijaku\Não_faz_nada_de_seus_dias\CCM\[source.xls]Folh1'!$A$1:$F$10
Clique em Adicionar

Na nossa planilha, na coluna A1 digite a fórmula: =espaço e depois valide. Estenda esta fórmula sobre todo o espaço de A1 à 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 "espaço", _
RefersTo:="='" & Caminho & "[" & Arquivo & "]Folh1'!$A$1:$F$10"
With Sheets("Folh2")
.[A1:F10] = "=espaço"
.[A1:F10].Copy
Sheets("Folh1").Range("A1").PasteSpecial xlPasteValues
.[A1:F10].Clear
End With
End Sub

Precauções do emprego

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

Download

Você pode baixar a planilha fonte por exemplo bem como a planilha recap.

Veja também :
Este documento, intitulado « VBA & Excel: ler em uma planilha fechada  »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.