
Todo mês, tenho o privilégio de compilar arquivos diários delimitados por barras verticais em uma pasta de trabalho mensal do Excel. Eu uso o assistente de importação para converter os arquivos de texto em planilhas na pasta de trabalho. Abro todos os 30 arquivos de uma vez e passo pelas instruções do assistente para cada arquivo. O assistente geralmente está correto ao detectar que os arquivos são delimitados por barras verticais. Mas uma vez, e apenas uma vez, em cada lote de arquivos, ele altera o tipo de arquivo de “Delimitado” para “Largura Fixa”. Cada arquivo tem o mesmo formato, Data|Depto|Conta|Tipo|Valor, etc…. Cada campo contém dados semelhantes em todos os arquivos. Todas as datas têm 8 caracteres; Todos os departamentos têm 5 caracteres; todas as contas têm 6 caracteres; etc….
Por que o Excel de repente não reconhece o formato delimitado do arquivo?
Por que apenas 1 arquivo do grupo?
É ter certeza de que estou prestando atenção?
Isso acontece no Excel 2013 e no Excel 365 Pro (MSO 16.0)
Responder1
Se você entende VBA, pode usar a seguinte macro, que solicitará um nome de arquivo e forçará a importação como delimitado por barras verticais:
Sub Test()
Dim Filter As String, Title As String
Dim FilterIndex As Integer
Dim FileName As Variant
' File filters
Filter = "Text Files (*.dat),*.dat," & "All Files (*.*),*.*"
' Default Filter to *.*
FilterIndex = 3
' Set Dialog Caption
Title = "Select a File to Open"
' Select Start Drive & Path
ChDrive ("G:")
ChDir ("G:\Scot\MS Excel")
With Application
' Set File Name to selected File
FileName = .GetOpenFilename(Filter, FilterIndex, Title)
' Reset Start Drive/Path
ChDrive (Left(.DefaultFilePath, 1))
ChDir (.DefaultFilePath)
End With
' Exit on Cancel
If FileName = False Then
MsgBox "No file was selected."
Exit Sub
End If
' Import File
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=Range("A1"))
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = "|"
.Refresh BackgroundQuery:=False
End With
End Sub
Insira seus próprios valores para o código abaixo de "Selecionar Start Drive & Path".