看板 Visual_Basic 關於我們 聯絡資訊
: → MOONRAKER:(1)使用filesystemobject讀取檔名 : → MOONRAKER:(2)使用regex類別建立正規表示式, 過濾取得的檔名 參考程式 Sub abc() Set fshandle = CreateObject("scripting.filesystemobject") Set fld0 = fshandle.getfolder("C:\inetpub\catalog.wci") Set regex0 = New regexp regex0.Pattern = "^0001\w*" i = 1 For Each f In fld0.Files If regex0.Test(f.Name) Then Cells(i, 2) = f.Name i = i + 1 End If Next End Sub 執行以前記得到「設定引用項目」裡面,把 microsoft vbscript regular expressions 5.5 勾起來。 getfolder()裡面是目標路徑,regex0.pattern是regular expression,你可以任改。 - 開頭的 ^ 表示字串開頭,不加就會match任何位置的 0001\w* 。 - 0001就是0001,沒有什麼特別。 - \w 是任意字元的意思,後面加 * 表示重覆 0 到無限次。 - 整個意思就是符合「開頭是0001,後面接什麼都可以,沒有也可以」的字串 詳細用法請爬文一下,看敝人稍早的post有提到「黑暗執行緒」的regex介紹,或看 http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2 如果看不下去(我也認為很難看),請跳過前面看後面的對照表, 或自己搜尋VB6 regex或VB scripting regex。   -- BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 - http://tinyurl.com/3zpyx5 [B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) - http://tinyurl.com/66v6vq [ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) - http://tinyurl.com/6j4ale ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 蒙帝派松正體中文計畫 Spam-a-lot and enjoy the pythonesque delight! ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.168.228
MOONRAKER:啊對,這是用Excel寫的,所以foreach裡面怎麼輸出 02/02 18:13
MOONRAKER:也要由你改成你需要的樣子,比如用listbox之類 02/02 18:14
chiucs:感謝 02/03 13:26
chiucs:但,單單在for each:next沒有任何的判斷式1.5萬筆就要39秒 02/03 13:52
chiucs:似乎沒有解決我的問題 02/03 13:52
MOONRAKER:那他可能用一些更強的工具寫的,用VB也就是這樣了 02/03 17:22
MOONRAKER:或許要用一些低階的方法 02/03 17:25