Witam, stworzyłem w VBA kod, dzięki któremu mogę importować pliki .csv, wszystko działa dobrze, po za tym, że nie raz w pliku .csv występują wyjątki, np. nazwa zawarta w pliku jest w cudzysłowie, przez to przestają się przepisywać kolejne wiersze, jakieś pomysły jak to obejść ?
Poniżej kod
Sub Macro1()
'
' Macro1 Macro
'
' Open GetOpenFilename with the file filters.
fname = Application.GetOpenFilename(FileFilter:="csv Files (*.csv), *.csv", Title:="Select a file or files", MultiSelect:=False)
'and put that in a loop statement around your import csv macro.
'So just change the hard-coded csv part in your recorded macro for importing CSV's to fname and job done
'This is my hard-coded macro for a random .csv
FileNameAlone = Right(Left(fname, Len(fname) - 4), (Len(fname) - 4) - (InStrRev(fname, "\", -1)))
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fname, Destination:=Range( _
"$A$6"))
.Name = FileNameAlone
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
With Sheets("Arkusz2").Range("$C$3")
.Value = Now()
.NumberFormat = "dd/mm/yyyy"
End With
Dim i As Integer, ostw As Integer
ostw = Sheets("Arkusz1").Cells(Rows.Count, "A").End(xlUp).Row
For i = 7 To ostw
Sheets("Arkusz2").Cells(i, "A").Value = i - 6
Sheets("Arkusz2").Cells(i, "B").Value = Sheets("Arkusz1").Cells(i, "A").Text
Sheets("Arkusz2").Cells(i, "C").Value = Sheets("Arkusz1").Cells(i, "C").Text & Chr(10) & Sheets("Arkusz1").Cells(i, "D").Text & Chr(10) & Sheets("Arkusz1").Cells(i, "E").Text
Sheets("Arkusz2").Cells(i, "D").Value = Sheets("Arkusz1").Cells(i, "G").Text
Sheets("Arkusz2").Cells(i, "A").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "B").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "C").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "D").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "E").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "F").Borders.LineStyle = xlContinuous
Sheets("Arkusz2").Cells(i, "G").Borders.LineStyle = xlContinuous
Next i
End Sub