- 帖子
- 2842
- 主題
- 10
- 精華
- 0
- 積分
- 2898
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2025-4-28
|
4#
發表於 2015-9-28 20:50
| 只看該作者
本帖最後由 准提部林 於 2015-9-28 20:53 編輯
程式碼請自行去套,在工作表1建兩個按鈕,分別指定〔開始〕及〔停止〕,
〔停止〕鈕用來暫停程式,關閉檔案前也必須按〔停止〕再關!
uP = ThisWorkbook.Path & "\" 是文字檔資料夾的〔路徑〕,請自行更改實際路徑!
程式碼初看頗複雜,恕無法一一說明,有必要可搜一下論壇資料去漸進理解!
- Public uMode&, uBook As Workbook, uSht As Worksheet, uDic As Object
- '======================================================
-
- Sub 開始()
- Dim FN, xE As Range
- If uMode = 1 Then Exit Sub
- Set uBook = ThisWorkbook
- Set uSht = uBook.Sheets("工作表1")
- Set uDic = CreateObject("Scripting.Dictionary")
- Set xE = uSht.Cells(1, Columns.Count).End(xlToLeft)
- For Each FN In Range(uSht.[B1], xE).Value
- If FN Like "*.txt" Then uDic(FN) = 1
- Next
- uMode = 1
- Call 監視
- End Sub
-
- '======================================================
- Sub 停止()
- uMode = 0
- Set uDic = Nothing
- End Sub
-
- '======================================================
- Sub 監視()
- Dim uP$, xE As Range, TM, FL$, TT
- If uMode = 0 Then Exit Sub
- TM = Time
- uSht.[A5] = Format(TM, "hh:mm:ss")
- If Second(TM) = 0 And Minute(TM) Mod 5 = 0 Then '這是每5分鐘
- 'If Second(TM) Mod 5 = 0 Then '這是每5秒
- uP = ThisWorkbook.Path & "\"
- Set xE = uSht.Cells(1, Columns.Count).End(xlToLeft)(1, 2)
- Do
- If FL = "" Then FL = Dir(uP & "*.txt") Else FL = Dir
- If FL = "" Then Exit Do
- If uDic(FL) = "" Then
- xE = FL: uDic(FL) = 1
- Open uP & FL For Input Access Read As #1
- Line Input #1, TT
- xE(3, 1) = TT
- Close #1
- Set xE = xE(1, 2)
- End If
- Loop
- uBook.Save
- End If
- Application.OnTime Now + TimeValue("00:00:01"), "監視"
- End Sub
複製代碼 |
|