[VBA ] 請問怎麼累計

看板Visual_Basic作者 (我會很有禮貌)時間9年前 (2014/11/10 18:33), 編輯推噓2(204)
留言6則, 1人參與, 最新討論串1/2 (看更多)
請幫我看看程式碼 如果我有違反版規,請幫我刪除 以下是兩個程序的程式碼 主要目的是要搜尋相同資料夾中的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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- http://www.wretch.cc/user/antemw 關鍵字:男的 XD 魚說:你看不見我的淚水 因為我在水中.... 水說:我能感覺到妳的淚 只因妳在我的心中... 魚需要水才能生存 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.184.37 ※ 文章網址: http://www.ptt.cc/bbs/Visual_Basic/M.1415615632.A.5C2.htmlantemw:轉錄至看板 Office 11/11 10:37

12/28 01:50, , 1F
我看過了 因為你子程式沒有用全域變數
12/28 01:50, 1F

12/28 01:51, , 2F
lRow沒宣告 故初始值一直都是0 然後都會被加1
12/28 01:51, 2F

12/28 01:51, , 3F
所以每個檔案都是以第一行為起點
12/28 01:51, 3F

12/28 01:54, , 4F
每個Sub 的變數是不可以共用的
12/28 01:54, 4F

12/28 01:54, , 5F
故你宣告在ReadtxtFiles 但ProcessFile用的是自己的
12/28 01:54, 5F

12/28 01:55, , 6F
要宣告在Sub外面
12/28 01:55, 6F
文章代碼(AID): #1KO9IGN2 (Visual_Basic)
文章代碼(AID): #1KO9IGN2 (Visual_Basic)