在导入excel(vba)之前删除txt文件中的返回键或换行符

我有一个带有.csv文件的vba脚本,并将其sorting在Excel中。 但是,在结束列上有一些回车符,并在导入中添加换行符。 我可以通过转到文本文件手动修复此问题,并用“”replace\ n。 但是我希望在导入之前在脚本中自动完成。

这是我目前的脚本来导入文本文件:

For rep1 = 8 To 8 Dim i As Integer, j As Integer, pctCompl As Integer, myint As Integer Dim lastrow As Long Dim ws As Worksheet, ws1 As Worksheet, ws2 As Worksheet Dim file_name As String Dim file_name2 As String Dim row_number As String Dim output_sheet As String Dim hour As String Dim day As String Dim month As String Dim project As String Set ws = Worksheets("Master") Set ws1 = Worksheets("RAW_Data") Set ws2 = Worksheets("BOM") file_name = Sheets("Master").Range("F" & rep1).Value file_name2 = Sheets("Master").Range("G" & rep1).Value output_sheet = Sheets("Master").Range("L" & rep1).Value row_number = Sheets("Master").Range("M" & rep1).Value hour = Format(Sheets("Master").Range("I" & rep1).Value, "00") day = Sheets("Master").Range("K" & rep1).Value month = Sheets("Master").Range("J" & rep1).Value project = Sheets("Master").Range("B2").Value ws1.Activate Columns("A:A").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlToLeft ws.Activate aa = file_name2 & Format(Date, "yyyymmdd") & "_" & Format(Time, "Hh") With Sheets(output_sheet).QueryTables.Add(Connection:="TEXT;" + file_name + "\" + month + "\" + day + "\" + file_name2 & Format(Date, "yyyymmdd") & "_" & hour & ".txt", Destination:=Sheets(output_sheet).Range("$A$" + row_number)) .Name = file_name & Format(Date, "yyyymmdd") & "_" & Format(Time, "Hh") .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlOverwriteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileOtherDelimiter = "~" .TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 9, 2, 9, 2, 2, 2, 2) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Next rep1 ws1.Activate lastrow = Cells(ws1.Rows.Count, "A").End(xlUp).Row Cells.Replace What:="true", Replacement:="TRUE", LookAt:=xlPart, _ searchorder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Cells.Replace What:="false", Replacement:="FALSE", LookAt:=xlPart, _ searchorder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False ws1.Columns("A:AZ").EntireColumn.AutoFit ws2.UsedRange.ClearContents ws2.Range("A1:G" & lastrow).Value = ActiveSheet.Range(Cells(1, 1), Cells(lastrow, 7)).Value ws2.Range("N1:O" & lastrow).Value = ActiveSheet.Range(Cells(1, 8), Cells(lastrow, 9)).Value ws2.Range("Y1:Y" & lastrow).Value = ActiveSheet.Range(Cells(1, 11), Cells(lastrow, 11)).Value 

最好的办法是用文件系统对象打开文本文件,然后replace()所需的字符,然后写回临时文件并将其用作input。 所有这些步骤很容易googleable,但如果你卡住了,回复这个,我会编辑我的post更多的细节。