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.