' This script was written for folks trying to import a text file into
' Excel 2003 that exceed the row limitations.
' This version works on Windows XP and has not been tested on any other OS.
Const ForReading = 1 Const ForAppending = 2 Set objDialog = CreateObject("UserAccounts.CommonDialog") objDialog.Filter = "All Files|*.*" objDialog.InitialDir = "C:\" intResult = objDialog.ShowOpen If intResult = 0 Then Wscript.Quit Else BreakFile = objDialog.FileName End If Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(BreakFile, ForReading) FiletoSplit = objFSO.GetFileName(BreakFile) FolderDest = Mid(objFSO.GetAbsolutePathName(BreakFile),1, _ Len(objFSO.GetAbsolutePathName(BreakFile))-(Len(FiletoSplit))) FileSplitName = objFSO.GetBaseName(BreakFile) dtmStart = Now() strContents = objFile.ReadAll FileNum = 1 fname = FolderDest & FileSplitName & "Split_" & FileNum & ".txt" Set objFile1 = objFSO.OpenTextFile(fname, ForAppending, True) CountLines = 0 arrLines = Split(strContents, vbCrLf) If ubound(arrLines) < 64500 Then msgbox "This file will fit into Excel already. No split is necessary.",48,"SplitFile" Wscript.Quit End If HeaderText = arrLines(0) For i = 0 to ubound(arrlines) strLine = arrLines(i) & vbCrLf objFile1.Write strLine If (Countlines) < 64500 Then countlines = countlines + 1 ElseIf Countlines >= 64500 Then objFile1.Close Countlines = 0 FileNum = FileNum + 1 fname = FolderDest & FileSplitName & "Split_" & FileNum & ".txt" Set objFile1 = objFSO.OpenTextFile(fname, ForAppending, True) objFile1.Write HeaderText & vbCrLf End If Next objFile.Close dtmEnd = Now() If MsgBox("There were " & FileNum & " files created." & vbcrlf & _ "The files were put into this folder: " & FolderDest & _ vbCrLf & "The script took " & DateDiff("s", dtmStart, dtmEnd) & " seconds " & _ "to break the " & FiletoSplit & " file." & vbcrlf & vbcrLF & _ "Click OK to open destination folder or CANCEL to quit.", _ 1,"SplitFile") = vbOK Then Set objShell = CreateObject("Shell.Application") strPath = FolderDest objShell.Explore strPath End If[Via]