標題:
[發問]
如何將超過65536筆以上的資料放入活頁簿(已解決^^)
[打印本頁]
作者:
巴克斯
時間:
2011-5-27 12:39
標題:
如何將超過65536筆以上的資料放入活頁簿(已解決^^)
本帖最後由 巴克斯 於 2011-5-28 09:06 編輯
EX:
文字檔: test.txt (筆數會超過65536,總筆數:未知)
希望程式依序將65536筆資料放入各工作表
sheet1 1-65536筆
sheet2 65537-131072筆
sheet3 ...以此類推到最末筆
請教須如何做較快速?
作者:
GBKEE
時間:
2011-5-27 12:52
回復
1#
巴克斯
可否傳上
筆數少於65536
的程式碼,來看看如何改.
作者:
oobird
時間:
2011-5-27 14:07
Sub yy()
'引用Microsoft Scripting Runtime
Application.ScreenUpdating = False
Dim fso As Scripting.FileSystemObject
Dim myTxt As Scripting.TextStream
Dim myfile As String, myname$
Dim i As Long, j%
ActiveSheet.Cells.Clear
myfile = Application.GetOpenFilename("text files (*.txt),*.txt", , "記事本文件") '選擇文件名
Set fso = New Scripting.FileSystemObject
Set myTxt = fso.OpenTextFile(Filename:=myfile, IOMode:=ForReading)
With myTxt
i = 1: j = 1: myname = "sheet" & j
Do Until .AtEndOfStream
Sheets(myname).Cells(i, 1) = .ReadLine
i = i + 1
If i = 65530 Then
j = j + 1
If j > 3 Then
Sheets.Add after:=Sheets(myname)
End If
myname = "sheet" & j
i = 1
End If
Loop
.Close
End With
End Sub
複製代碼
沒文件可測試,你自己測試一下吧
作者:
巴克斯
時間:
2011-5-28 06:06
本帖最後由 巴克斯 於 2011-5-28 09:03 編輯
謝謝版主回覆
執行後發生錯誤訊息
編譯錯誤: 使用者自訂型態尚未定義
偵錯為
Dim fso As Scripting.FileSystemObject
Dim myTxt As Scripting.TextStream
麻煩版主看看是否可修訂,謝謝
作者:
GBKEE
時間:
2011-5-28 08:03
回復
4#
巴克斯
Sub yy()
'引用
Microsoft Scripting Runtime
[attach]6377[/attach]
不引用
Microsoft Scripting Runtime
的寫法
Sub Ex()
Dim MyString As String, i As Long, Sh As Integer, Ar
Open "d:\test\test.txt" For Input As #1 ' 開啟輸入檔。
i = 1
Sh = 1
ReDim Ar(1 To Rows.Count)
Do While Not EOF(1) ' 檢查是否已到檔尾。
If i > Rows.Count Then 'Rows.Count為列的總數 2003版本->65536
Sheets(Sh).Range("a:a") = Application.Transpose(Ar)
ReDim Ar(1 To Rows.Count)
i = 1
Sh = Sh + 1
If Sh > Sheets.Count Then Sheets.Add after:=Sheets(Sheets.Count)
End If
Line Input #1, MyString ' 將資料讀入變數中。
Ar(i) = MyString
i = i + 1
Loop
Sheets(Sh).Range("a:a") = Application.Transpose(Ar)
Close #1
End Sub
複製代碼
作者:
巴克斯
時間:
2011-5-28 09:05
謝謝兩位板主的幫忙
兩種方式都成功了
比我原來土法煉鋼快速很多
也學習到精簡的程式寫法
^^
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)