標題:
[發問]
搜尋某資料夾中檔案的數量,每增加一筆資料就收錄進來
[打印本頁]
作者:
sweetkitty
時間:
2012-7-18 17:49
標題:
搜尋某資料夾中檔案的數量,每增加一筆資料就收錄進來
某個軟體每秒在"D:\raw data\"資料夾中儲存一個Excel檔案
檔案名稱依序從 ResultsFile1、ResultsFile2、ResultsFile3、....、ResultsFile10、ResultsFile11、...
我想要建一個"Record.xls" 叫他自動偵測這個資料夾是否有新的Excel檔進來
每當有新檔案就把他打開存取Cells(2,3)的值進入"Record.xls" 中
請問該如何寫VBA叫他自動偵測?
感謝
作者:
Hsieh
時間:
2012-7-19 00:00
本帖最後由 Hsieh 於 2012-7-20 09:20 編輯
回復
1#
sweetkitty
或許還有其他辦法(如開通DDE通道)
比較不花腦筋的作法
利用ONTIME方法,每秒去跑資料夾內的檔案名稱
然後記錄在A、B欄內,就能判斷是否有新增檔案
一般模組
Sub auto_open()
fd = "D:\raw data\" '資料夾
fs = Dir(fd & "*.xls")
Set sht = ThisWorkbook.Sheets(1)
Do Until fs = ""
If IsError(Application.Match(fs, sht.Columns("A"), 0)) Then
With Workbooks.Open(fd & fs)
sht.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 2) = Array(fs, .Sheets(1).Cells(2, 3).Value)
.Close 0
End With
End If
fs = Dir
Loop
Application.OnTime Now + TimeValue("00:00:01"), "auto_open"
End Sub
複製代碼
作者:
hugh0620
時間:
2012-7-19 10:42
回復
2#
Hsieh
H大大~ 這樣的方式~
不是也一定要打開excel才能夠自動去搜尋嘛??
作者:
sweetkitty
時間:
2012-7-19 15:53
回復
2#
Hsieh
感謝H大回答,不過我執行的時候出現"無法執行巨集"的視窗
Loop之前的動作都執行完畢了,是最後一行Application沒辦法做
請問有什麼我沒注意的地方嗎?
謝謝!!
作者:
sweetkitty
時間:
2012-7-24 16:22
本帖最後由 sweetkitty 於 2012-7-24 17:15 編輯
回復
2#
Hsieh
感謝H大大! 我發現把程式碼放在"模組"裡面就可以執行了
另外我修改成我要的樣子,發現您原來的程式碼跑會自動抓"有新增的檔案"取值
但我的程式碼會一直不斷的從第一個檔案開始repeat
請問是哪個程式碼沒改到呢?
感謝
Sub 自動整理資料()
fd = "D:\Wayne\" '資料夾
fs = Dir(fd & "ResultsFile*")
Set sht = ThisWorkbook.Sheets(2)
Do Until fs = ""
If IsError(Application.Match(fs, sht.Columns("A"), 0)) Then
With Workbooks.Open(fd & fs)
sht.Cells(Rows.Count, 1).End(xlUp).Offset(1) = Mid(Workbooks(fs).Name, 12)
sht.Cells(Rows.Count, j * 2).End(xlUp).Offset(1) = Workbooks(fs).Sheets(1).Cells(23, j * 2 + 1).Value
.Close 0
End With
End If
fs = Dir
Loop
Application.OnTime Now + TimeValue("00:00:01"), "自動整理資料"
End Sub
複製代碼
作者:
sweetkitty
時間:
2012-7-24 17:17
回復
5#
sweetkitty
我發現把上面那個程式碼的第9行改成以下這樣,就不會發生重複填入資料的狀況了
sht.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 2) = Array(fs, .Sheets(1).Cells(2, 3).Value)
複製代碼
但是我還是不太明白原理,希望可以解惑
感謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)