1
我試圖將存儲在一個文件夾中的所有CVS's
合併到一個Excel工作表中。合併之後,我將運行一個單獨的宏來處理所有的格式,而不是單獨格式化每個單獨的文件。將CSV合併到1個Excel工作表並刪除標題
下面的代碼是我到目前爲止有:
Sub MergeFiles_Click()
Dim strSourcePath As String
Dim strDestPath As String
Dim strFile As String
Dim strData As String
Dim x As Variant
Dim Cnt As Long
Dim r As Long
Dim c As Long
Application.ScreenUpdating = False
strSourcePath = Sheet1.Range("G2").Value
If Right(strSourcePath, 1) <> "\" Then strSourcePath = strSourcePath & "\"
strFile = Dir(strSourcePath & "*.csv")
Do While Len(strFile) > 0
Cnt = Cnt + 1
If Cnt = 1 Then
r = 6
Else
r = Cells(Rows.Count, "A").End(xlUp).Row + 1
End If
Open strSourcePath & strFile For Input As #1
Do Until EOF(1)
Line Input #1, strData
x = Split(strData, ",")
For c = 0 To UBound(x)
Cells(r, c + 1).Value = Trim(x(c))
Next c
r = r + 1
Loop
Close #1
strFile = Dir
Loop
Application.ScreenUpdating = True
If Cnt = 0 Then _
MsgBox "No CSV files were found...", vbExclamation
End Sub
這將合併所有CSV
文件放到一個表,但每個CSV文件的,佔用了12行頂部的標題和其他無用的信息。
我想保留12行放在Excel中的第一個CSV
的頂部,但在將其放入Excel工作表之前,將這12行從其餘文件中刪除。
我基本上只想讓文件看起來像一個文件,而不是看起來像文件被複制並粘貼到表單上。
任何幫助,將不勝感激。
你知道你正在使用的數據,但要意識到CSV格式通常允許將逗號嵌入文字字符串中(用雙引號括起來的字段「就像這樣」)。如果你有這些,你的代碼將會失敗。 –
@RichHolton所以在測試了這個之後,我發現了一些導致問題的例子。我能做些什麼來避免這個問題? –
你可能會發現這個問題/答案有幫助:http://stackoverflow.com/questions/12197274/is-there-a-way-to-import-data-from-csv-to-active-excel-sheet –