※ [本文轉錄自 Visual_Basic 看板 #1KO9IGN2 ] 作者: antemw (我會很有禮貌) 看板: Visual_Basic 標題: [VBA ] 請問怎麼累計 時間: Mon Nov 10 18:33:47 2014 請幫我看看程式碼 如果我有違反版規,請幫我刪除 以下是兩個程序的程式碼 主要目的是要搜尋相同資料夾中的txt檔 搜尋出 C 24 後面的字串 同時輸出檔名 C 24 後面的字串Print在 Cell(1,A) 檔名Print在 Cell(1,B) 接著讀取第二個txt檔 C 24 後面的字串Print在 Cell(2,A) 檔名Print在 Cell(2,B) 不知道為什麼 他會一直Print在 Cell(1,A) 跟 Cell(1,B) 可能我一時迷失 搞了一天了 拜託各位 T_T - - - - - - - - - - - - - - - - - - - - - - - - - Sub ReadtxtFiles() Dim lRow As Long Dim FSO As Object Dim FL As Object Dim Fle As Object rpath = ThisWorkbook.Path & "\" Set FSO = CreateObject("Scripting.FileSystemObject") Set Fdr = FSO.GetFolder(rpath) Set Fle = Fdr.Files For Each FL In Fle If UCase(FL.Name) Like "*.TXT" Then ProcessFile FL Next Set FSO = Nothing lRow = 0 End Sub Sub ProcessFile(FL) Dim Fot As Object Dim FRL As String Set FSO = CreateObject("Scripting.FileSystemObject") Set Fot = FSO.OpenTextFile(FL, 1, False) Do Until Fot.AtEndOfStream FRL = Fot.ReadLine If FRL Like "C 24 *" Then lRow = lRow + 1 Cells(lRow, "A") = FRL Cells(lRow, "B") = Dir(FL) End If Loop Fot.Close Set Fot = Nothing End Sub - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
作者: soyoso (我是耀宗) 2014-11-11 12:35:00
這是因為每跳到procesfile程序時lRow就會重計的關係將Dim lRow as Long移到sub readtxtfiles()的上面試試http://goo.gl/pY26FF