Erro de tempo de execução do VBA 1004: o método 'OpenText' do objeto 'Workbooks' falhou

6

Após uma atualização para o Excel 2010 (a partir de 2003), um script usado para padronizar dados da importação do Access parou de funcionar. Ele retorna um erro: "Erro em tempo de execução '1004': o método 'OpenText' do objeto 'Pastas de trabalho' falhou".

Antes da porção OpenText, a macro procura uma pasta do arquivo mais recente por DateCreated e, em seguida, retorna o nome do arquivo e o caminho.

O código relevante é:

Workbooks.OpenText FileName:=myDir & "\" & strFilename, _
    Origin:=-535, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
    , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
    Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), _
    Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15 _
    , 2), Array(16, 3), Array(17, 3), Array(18, 3), Array(19, 3), Array(20, 2), Array(21, 2), _
    Array(22, 1), Array(23, 2), Array(24, 2), Array(25, 3), Array(26, 2), Array(27, 2), Array( _
    28, 2)), TrailingMinusNumbers:=True

Alguma idéia do que pode estar pendurado no Excel 2010?

O arquivo ainda é um arquivo .xls e está em execução no Modo de Compatibilidade, no qual ainda não tive problemas em nenhuma outra macro.

ATUALIZADO depois de gravar uma nova macro e comparar com o antigo:

A nova diferença da macro one, o argumento Origem.

Na macro antiga:

Origin:=-535

A nova macro:

Origin:=65001

Ao ler a Origem, esta parece ser a fonte do arquivo a ser importado e pode ser omitida.

Que importância teria a Origin na importação? O DataType já está especificado. O Origin controla a codificação?

Removendo a origem da macro original, o mesmo erro é retornado. Alterar o valor de origem para 65001 ainda retorna o mesmo erro.

    
por music2myear 28.05.2011 / 00:20

2 respostas

1

@datatoo, você me apontou na direção certa. Foi um problema de variável / caminho. De alguma forma, eu comecei a usar o strFullFile como uma string para pegar a string completa do caminho do arquivo. No entanto, eu também simplesmente modifiquei strFileName, prefixando a string myDir para criar o caminho completo do arquivo. A remoção da alteração das referências apropriadas para strFullFile para strFileName resolveu o problema.

    
por 07.06.2011 / 23:41
2

Verifique o caminho:

UserProfileFolder = Environ("UserProfile")

e

Workbooks.OpenText Filename:

No Office 2003, o caminho do ambiente do XP era:

%systemDrive%\Documents and Settings\{user}\My Documents

Para o Vista e o Windows 7, é:

%systemdrive%\users\Documents

em que% systemdrive% geralmente é C:

    
por 03.06.2011 / 03:22