Boa tarde, pessoal. Agradeço se alguém puder me ajudar.
Tenho uma macro que insere dados de um CSV em uma planilha. A macro roda perfeitamente.
Todos os dados vem nos campos certos, separados por ";".
Acontece que se rodar essa macro duas vezes no arquivo, os dados vem de forma errada na segunda vez. Como se usasse "/" como delimitador.
Se fecho o arquivo e abro novamente a macro funciona normal.
Alguém sabe o que pode estar acontecendo?
Segue abaixo minha macro:
Sub ImportarRazao()
Application.ScreenUpdating = False
sPath = "C:"
ChDrive sPath
ChDir sPath
fName = Application.GetOpenFilename( _
Filefilter:="CSV Files (*.csv),*.CSV")
If fName <> False Then
'Limpa a base antiga e insere dados
Worksheets("RAZÃO").Activate
Cells.Select
Selection.Delete Shift:=xlUp
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fName, _
Destination:=Range("A1"))
.Name = Replace(LCase(fName), ".xls", "")
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A1").Select
MsgBox "Importação Finalizada!", vbExclamation, "Atenção!"
Else
MsgBox "Importação cancelada!", vbExclamation, "Atenção!"
End If
Application.ScreenUpdating = True
End Sub
Postado : 08/11/2017 1:45 pm