[算表] 在固定檔案名稱規則下抓取檔案內資料?

作者: jinnit09786 (樂在棋中)   2018-04-23 13:48:58
軟體:EXCEL
版本:2010
情境:
在固定的資料夾內每日自動產生一報表(D:\XXXX\parameter20180423131053)(即年/月/日
/時/分/秒的格式)
假設今天資料夾內有以下五個xls檔案,名稱如下:
parameter20180423090937.xlsx
parameter20180424090959.xlsx
parameter20180425091014.xlsx
parameter20180426091021.xlsx
parameter20180427091028.xlsx
個別問題:
1.我想要製作一個總表,在該總表的A1儲存格顯示「抓取上述5個檔案的固定F4儲存格之
加總值」。
2.做一個選項按鈕,當下拉式清單切換月份為05時,點選月表按鈕,可以自動抓取05月
份的01~31的固定儲存格之加總值顯示在A1儲存格。(即主問題點是在如何僅從部分檔名”
0501”~”0531”相符,就抓取該資料的某儲存格之值?因最尾端時間可能不固定,故只能
從部分檔名,或第幾個字節來做處理)
3. 當同一日的報表有1個以上,只抓取最後紀錄時間的xlsx檔。(設23:59:59為最後紀錄
時間)
不好意思問題有點冗長,懇請能提供一點相關功能的提示,讓我能從買來的範例書(VBA
757個範例)中尋找相關對策。
作者: soyoso (我是耀宗)   2018-04-23 14:05:00
dir配合迴圈來抓檔名,可以*(萬用字元)問題3,設個變數,dir迴圈於同一日判斷時間部分(mid取出)和變數那個大,為真則寫入變數內,來取得最後紀錄時間的檔名有檔名且知道工作表名稱的話,可以worksheets.open來抓取不開檔的話,可於總表任一儲存格以='路徑\[完整檔名]工作名稱'!儲存格位置來取得該值如原文名稱長度固定,可以mid(檔名,18,6)來取得或以replace取代".xlsx"為""後,right取6位知道工作表名稱,不開檔方面也可以ado,getstring來取得原文所寫到儲存格f4的值可以任一儲存格內以='路徑\[完整檔名]工作名稱'!儲存格位置來取得該值,再以變數=儲存格,傳回變數
作者: jinnit09786 (樂在棋中)   2018-04-23 15:14:00
謝謝!!終於打通了,做二段處理就可以達到了,太感謝S大無私傳授了。
作者: soyoso (我是耀宗)   2018-04-23 22:32:00
是指不開啟檔案且不透過任一儲存格來取得嗎?無法寫入儲存格的位址是指?因不太了解回文的意思,原po要不要舉例或截個圖看看"='路徑\[" & range("a1") & "]工作表1'!儲存格" 方式連接
作者: jinnit09786 (樂在棋中)   2018-04-23 23:22:00
作者: soyoso (我是耀宗)   2018-04-23 23:26:00
以上回文的是從vba內所執行的,工作表資料編輯列(公式列)並無法用range()
作者: jinnit09786 (樂在棋中)   2018-04-24 21:07:00
S大您好,經過您的幫助,第三題我以較土法煉鋼的方式完成了,如下兩張圖,但仍想請教您,我有沒有更好的應用變數的方式來做判別呢?現在我只會比較土的一個一個列出來,想要更有效率的撰寫來達到目的。謝謝!!https://imgur.com/lltABh1https://imgur.com/Ey8GHtS
作者: soyoso (我是耀宗)   2018-04-25 08:28:00

Links booklink

Contact Us: admin [ a t ] ucptt.com