VBA文本列不工作在文本文件的每一行

我在ThisWorkbook中有一个模块,应该从一个位置打开.txt文件(在另一个工作簿中这样做),然后将文本写入列,然后复制单个列并粘贴到ThisWorkbook中。 .txt文件的每行格式为23,100,100.65格式的数据:三个数字以逗号分隔。

有些奇怪的事情正在发生,因为文本到列函数对一些单元格中的数据起作用,而对其他单元格则不起作用。 此外,似乎在工作簿中打开.txt文件时,分隔数据的某些逗号会出现在错误的位置,或者添加了额外的逗号。 下图显示了左边的文本文件和相应的Excel以及右边的结果数据。 30万行是奇怪问题的一个很好的例子。

左边的文本文件,右边的Excel工作簿

这里是我的代码,是否有任何方式我写这是导致这些问题? 如果没有,任何想法是怎么回事?

Sub OpenTxtFiles() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim xFolder As String Dim txtFname As String Dim cellAddr As String Dim lastRow As Long Dim rngTtC As Range xFolder = Application.ThisWorkbook.Path Set rng = Range("E1:I1") 'the range contains the text filenames Application.ScreenUpdating = False For Each cell In rng txtFname = cell.Value 'sets the cell value as txtFname variable 'MsgBox txtFname cellAddr = cell.Address 'sets the cell address as cellAddr variable 'MsgBox cellAddr Workbooks.Open Filename:=xFolder & "\" & txtFname 'opens the text file relating to the cell value Set rngTtC = ActiveSheet.[A:A] 'this bit does text to columns on the csv for ease of copying the columns in next bit rngTtC.TextToColumns Destination:=rngTtC, DataType:=xlDelimited, _ textqualifier:=xlDoubleQuote, consecutivedelimiter:=False, Tab:=False, _ semicolon:=False, comma:=True, Space:=False 

build议您更改为workbooks.opentext并跳过TextToColumns。

 Workbooks.OpenText Filename:="c:\test\numbertext.csv" 

我想我将不得不填写大量的自定义参数,但默认情况似乎适用于我从样本数据中重新input的小部分。

 259,1198,114.2290 259,1199,114.2290 259,1200,114.2290 251,1,27.0960 251,2,27.0960 251,3,27.0960 

在这里输入图像说明