【发布时间】:2017-11-04 10:31:58
【问题描述】:
我有一些非常大的数据文件 (.dat)(超过 Excel 允许的 1,048,000 行)。我不太清楚尝试的宏有什么问题(最初是为带有“,”分隔符的文本文件编写的,而不是带有制表符分隔符的 .dat 文件)。宏有效,但是它会导致数据被编译成一列(例如,应该是 5 列,现在是 1 列,所有数字都作为长文本字符串)。有没有更好的方法来打开一个非常大的 .dat 文件,将其拆分并导入到单独的工作表中,同时使用制表符分隔符将数据保存在单独的列中?
Sub ImportBigFile()
Dim N As Long
Dim Lim As Long
Dim SS() As String
Dim S As String
Dim R As Long
Dim C As Long
Dim WS As Worksheet
Dim FNum As Integer
Dim FName As String
FName = "C:\Folder 1\Folder 2\File.dat"
FNum = FreeFile
With ActiveWorkbook.Worksheets
Set WS = .Add(after:=.Item(.Count))
End With
Lim = WS.Rows.Count
Open FName For Input Access Read As #FNum
R = 0
Do Until EOF(FNum)
R = R + 1
Line Input #FNum, S
SS = Split(S, "\t", -1)
For C = LBound(SS) To UBound(SS)
WS.Cells(R, C + 1).Value = SS(C)
Next C
If R = Lim Then
With ActiveWorkbook.Worksheets
Set WS = .Add(after:=.Item(.Count))
End With
R = 0
End If
Loop
End Sub
【问题讨论】:
-
分隔符是什么没有区别。它只是一个角色,就像任何其他角色一样。 ...在你的情况下使用
vbTab作为分割字符SS = Split(S, vbTab, -1) -
jsotola - 谢谢!只需将 \t 更改为 vbTab 效果很好!