我有大约900个CSV文件,所有这些文件都是从跟踪软件导出的。不幸的是,该软件通过帧数据导入大约52行左右的汇总数据,这些数据有许多标题。自动将TXT文件导入到xls,并在excel或access中进行规范
我正在寻找一种方法来:
1)打开CSV文件
2)保存汇总数据与文件名 “Original_Summary”
3独立的电子表格)使用原始文件名作为工作表的新名称,将逐帧数据(包含标题)保存到单独的Excel文件中。
以前,我已经用〜124个文件手工完成了每个文件的剪切/粘贴操作,但由于文件数量太多了,我不确定手动操作是否是最好的选择。
我有另一个脚本,我已经写入,将这些excel文件作为单独的表格导入到Access中,但现在我需要一种方法将它们从CSV中转移,并将顶部的所有额外摘要数据移入到单独的文件。
有没有办法可以做到这一点?
谢谢!
Sub ImportManyTXTs_test()
Dim strFile As String
Dim foldername As String
Dim ws As Worksheet
strFile = Dir("C:\Users\Jared\Desktop\Processed\Text\*.txt")
Do While strFile <> vbNullString
Set ws = Sheets.Add
With ws.QueryTables.Add(Connection:= _
"TEXT;" & "C:\Users\Jared\Desktop\Processed\Text\" & strFile, Destination:=Range("$A$1"))
.Name = strFile
'.FieldNames = True
'.RowNumbers = False
'.FillAdjacentFormulas = False
'.PreserveFormatting = True
'.RefreshOnFileOpen = False
'.RefreshStyle = xlInsertDeleteCells
'.SavePassword = False
'.SaveData = True
'.AdjustColumnWidth = True
'.RefreshPeriod = 0
'.TextFilePromptOnRefresh = False
'.TextFilePlatform = 437
'.TextFileStartRow = 52
'.TextFileParseType = xlFixedWidth
'.TextFileTextQualifier = xlTextQualifierDoubleQuote
'.TextFileConsecutiveDelimiter = False
'.TextFileTabDelimiter = False
'.TextFileSemicolonDelimiter = False
'.TextFileCommaDelimiter = False
'.TextFileSpaceDelimiter = False
'.TextFileColumnDataTypes = Array(xlYMDFormat, 1, 1)
'.TextFileFixedColumnWidths = Array(22, 13, 13)
'.TextFileTrailingMinusNumbers = True
'.Refresh BackgroundQuery:=False
'.CommandType = 0
'.Name = "T15_070916_B"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 52
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Name = strFile
strFile = Dir
Loop
End Sub
我已经试过这一点,这似乎并没有上传所有的我的文件,只有前99个左右,也不会将其导入到一个新的工作簿,而只能用一个新的工作表原来的扩展。出于某种原因,它也只能工作1次,然后才能删除文件并重新开始。这很奇怪。
我还是一种新的编码,所以任何帮助将不胜感激!
开始于手动录制宏的操作?然后利用循环打开所有文件。 – PatricK
所以当我尝试这个时,我遇到了程序的问题,直接将每个文件添加到工作簿作为一个新的工作表,并与我不想要的文件名和扩展名。我想让他们每个人都有他们自己的工作簿,工作表保留了原始文件名,我不知道该怎么做。 – fishfishingfished