Excel spread sheet larger than 65536 records
this code will put data on multiple sheets
Sub GetCSVData()
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Const Delimiter = ","
Set fsread = CreateObject("Scripting.FileSystemObject")
'default folder
Folder = "C:\temp\test"
ChDir (Folder)
FName = Application.GetOpenFilename("CSV (*.csv),*.csv")
RowCount = 1
If FName < "" Then
'open files
Set fread = fsread.GetFile(FName)
Set tsread = fread.OpenAsTextStream(ForReading, TristateUseDefault)
Set newsht = Sheets.Add(after:=Sheets(Sheets.Count))
Do While tsread.atendofstream = False
InputLine = tsread.ReadLine
'extract comma seperated data
ColumnCount = 1
Do While InputLine < ""
DelimiterPosition = InStr(InputLine, Delimiter)
If DelimiterPosition 0 Then
Data = Trim(Left(InputLine, DelimiterPosition - 1))
InputLine = Mid(InputLine, DelimiterPosition + 1)
Else
Data = Trim(InputLine)
InputLine = ""
End If
newsht.Cells(RowCount, ColumnCount) = Data
ColumnCount = ColumnCount + 1
Loop
RowCount = RowCount + 1
If RowCount = Rows.Count Then
RowCount = 1
Set newsht = Sheets.Add(after:=Sheets(Sheets.Count))
End If
Loop
tsread.Close
End If
End Sub
"Chuck" wrote:
How can I import a delimited text file of 600,000 records in Excel?
|