- 10 Dez 2015 às 12:34
#5667
Boa tarde,
Sou um utilizador muito iniciante do VBA/Macros.
Criei uma Macro (ver abaixo), que me faz procurar no meu computador ficheiros .CSV, e os importa para o Excel.
Até aqui corre tudo bem, importo todos os ficheiros sem problema algum.
Estou agora à luta, a tentar perceber como posso adicionar uma coluna com o nome do fichiero .CSV.
podem ajudar? abraço.
Sub Import()
Dim myfiles
Dim i As Integer
myfiles = Application.GetOpenFilename(filefilter:="CSV Files (*.csv), *.csv", MultiSelect:=True)
If Not IsEmpty(myfiles) Then
For i = LBound(myfiles) To UBound(myfiles)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & myfiles(i), Destination:=Range("A" & Rows.Count).End(xlUp).Offset(1, 0))
.Name = "CSV"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.TextFileThousandsSeparator = ","
.Refresh BackgroundQuery:=False
End With
Next i
Else
MsgBox "No files Selected"
End If
End Sub
Sou um utilizador muito iniciante do VBA/Macros.
Criei uma Macro (ver abaixo), que me faz procurar no meu computador ficheiros .CSV, e os importa para o Excel.
Até aqui corre tudo bem, importo todos os ficheiros sem problema algum.
Estou agora à luta, a tentar perceber como posso adicionar uma coluna com o nome do fichiero .CSV.
podem ajudar? abraço.
Sub Import()
Dim myfiles
Dim i As Integer
myfiles = Application.GetOpenFilename(filefilter:="CSV Files (*.csv), *.csv", MultiSelect:=True)
If Not IsEmpty(myfiles) Then
For i = LBound(myfiles) To UBound(myfiles)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & myfiles(i), Destination:=Range("A" & Rows.Count).End(xlUp).Offset(1, 0))
.Name = "CSV"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.TextFileThousandsSeparator = ","
.Refresh BackgroundQuery:=False
End With
Next i
Else
MsgBox "No files Selected"
End If
End Sub