Inquiridor
O Método 'Open' do objeto 'Workbooks' falhou

Pergunta
-
Eu executo uma macro que abre várias planilhas com o Workbooks.Open, porém algumas planilhas acusam esse erro, porém o endereço está correto, eu vejo a planilha sendo carregada(baixando) mas quando termina acusa esse erro. O que poderia ser?
Todas as Respostas
-
-
-
Qual o erro que aparece? Consegue o print?
Experimente abrir as planilhas que estão com problemas, salve as com outro nome e faça o teste novamente. Pode ser algum dado corrompido.
“First do it, then do it right, then do it better.” - Addy Osmani
- Editado wallacemariadeandrade quinta-feira, 21 de março de 2019 15:48
-
Sub TesteErro() Dim Planilha As Workbook Dim Nome_Planilha As String Dim endereco As String Application.AutomationSecurity = msoAutomationSecurityForceDisable Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual endereco = "C:\Users\frolim\Desktop\Consultas\planilha_erro.xlsm" 'On Error Resume Next 'Set Planilha = Workbooks.Open(endereco) Set Planilha = Workbooks.Open(endereco, False, True, , , , True) Application.AutomationSecurity = msoAutomationSecurityLow Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
-
Não consegui anexar a imagem. Mas aparece aquele erro clássico:
Erro em tempo de execução '1004':
O método 'Open' do objeto 'Workbooks' falhou
Estava contornando o erro com o comando "On Error Resume Next" mas muitas dessas planilhas eu preciso abrir e queria saber o por que não é possível através desse comando.
-
-
Quando eu desvinculo a consulta/conexão existente na planilha que será aberta, o código em vba consegue abrir a planilha. Mas eu não posso alterar o arquivo excel, tem algum modo de abrir?
- Editado FilipeRolimVN quinta-feira, 21 de março de 2019 18:40
-
Esse ultimo "True" é referente ao parâmetro CorruptLoad?
Set Planilha = Workbooks.Open(endereco, False, True, , , , True)
Experimente:
Set Planilha = Workbooks.Open Filename:= endereco, ReadOnly:=True, CorruptLoad:=xlRepairFile
Links para ajudar
https://stackoverflow.com/questions/34953558/error-1004-open-a-workbook?rq=1
https://www.mrexcel.com/forum/excel-questions/694292-avoiding-error-1004-method-open-object-workbooks-failed.html
https://www.autoitscript.com/forum/topic/166926-opening-excel-workbook-using-corruptload-xlextractdata/“First do it, then do it right, then do it better.” - Addy Osmani
-
Não, é referente ao parâmetro "IgnoreReadOnlyRecommended". Não funciona, mas se eu mudar o parametro CorruptLoad para xlExtractData funciona, pois elimina a conexão da planilha que é o que está causando problema (não sei o porque). Porém, eu preciso abrir com as consultas pois o objetivo principal da minha macro é ler as consultas/conexões das planilhas, então se eu abrir em modo ExtractData, não consigo ler.
-
-
Não, nenhum alerta. Mas o que eu acho estranho é que quando excluo/desvinculo a consulta da planilha. Tudo funciona!! É algum problema realizado na consulta quando ela foi criada. Alterei a consulta para consultas iguais a de outras planilhas que funcionam e continua sem funcionar. Não sei se é possivel mas é como se a consulta estivesse corrompida. Pelo python eu consigo abrir e ler, mas pelo vba não.
-
-
-
Veja as extensões dos arquivos, se são .xls ou .xlsm, .xls, etc.
Compare as extensões dos arquivos que abrem com as dos que não abrem.
“First do it, then do it right, then do it better.” - Addy Osmani
- Editado wallacemariadeandrade quinta-feira, 21 de março de 2019 22:11
-
-
Entendi. Só para fins de teste, pegue uma dessas planilhas que não abre e copie tudo dela para uma nova. Faça à mão mesmo, com a que tiver menos dados e tente abrir ela attaves do codigo, so para termos certeza que nao tem algo corrompido atrapalhando a abertura. É possível?
“First do it, then do it right, then do it better.” - Addy Osmani
-
-
Bem, ao que tudo indica realmente há algo corrompido na consulta. Não sei se há algum método para corrigir isso, mas como são algumas que estão apresentando o problema, talvez essa seja uma solução rápida.
“First do it, then do it right, then do it better.” - Addy Osmani