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

看板Office作者 (樂在棋中)時間8年前 (2018/04/23 13:49), 8年前編輯推噓0(0029)
留言29則, 2人參與, 8年前最新討論串1/1
軟體: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個範例)中尋找相關對策。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.133.154 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1524462540.A.FE0.html

04/23 14:05, 8年前 , 1F
dir配合迴圈來抓檔名,可以*(萬用字元)
04/23 14:05, 1F
感謝S大!!正是需要此函數來抓檔案,馬上研究應用。 ※ 編輯: jinnit09786 (220.137.133.154), 04/23/2018 14:17:45

04/23 14:21, 8年前 , 2F
問題3,設個變數,dir迴圈於同一日判斷時間部分(mid取出)
04/23 14:21, 2F

04/23 14:23, 8年前 , 3F
和變數那個大,為真則寫入變數內,來取得最後紀錄時間的檔
04/23 14:23, 3F

04/23 14:23, 8年前 , 4F
04/23 14:23, 4F
想請教怎麼指定一串檔名當中的時間部分呢?(指定第幾至幾的字元)

04/23 14:26, 8年前 , 5F
有檔名且知道工作表名稱的話,可以worksheets.open來抓取
04/23 14:26, 5F

04/23 14:27, 8年前 , 6F
不開檔的話,可於總表任一儲存格以='路徑\[完整檔名]工作
04/23 14:27, 6F

04/23 14:28, 8年前 , 7F
名稱'!儲存格位置來取得該值
04/23 14:28, 7F
※ 編輯: jinnit09786 (220.137.133.154), 04/23/2018 14:42:55

04/23 14:52, 8年前 , 8F
如原文名稱長度固定,可以mid(檔名,18,6)來取得
04/23 14:52, 8F

04/23 14:53, 8年前 , 9F
或以replace取代".xlsx"為""後,right取6位
04/23 14:53, 9F

04/23 14:56, 8年前 , 10F
知道工作表名稱,不開檔方面也可以ado,getstring來取得原
04/23 14:56, 10F

04/23 14:56, 8年前 , 11F
文所寫到儲存格f4的值
04/23 14:56, 11F
太謝謝了!上述指令我研究使用看看,另外您提到的外部參照使用方法,在[完整檔名]這部分, 如果我想要指向到已經用dir抓取到的檔名所在的儲存格的string,該如何做呢?萬分感謝>< ※ 編輯: jinnit09786 (220.137.133.154), 04/23/2018 15:07:00

04/23 15:08, 8年前 , 12F
可以任一儲存格內以='路徑\[完整檔名]工作名稱'!儲存格位
04/23 15:08, 12F

04/23 15:09, 8年前 , 13F
置來取得該值,再以變數=儲存格,傳回變數
04/23 15:09, 13F
S大,測試了一個下午之後,我發現﹝完整檔名〕好像沒有辦法將內容直接指向儲存格, 想請問這有解嗎?這個中括號微軟好像也沒有給出他的屬性,不知道可以怎麼使用。謝謝!

04/23 15:14, 8年前 , 14F
謝謝!!終於打通了,做二段處理就可以達到了,太感謝S
04/23 15:14, 14F

04/23 15:15, 8年前 , 15F
大無私傳授了。
04/23 15:15, 15F
※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 22:10:52

04/23 22:32, 8年前 , 16F
是指不開啟檔案且不透過任一儲存格來取得嗎?
04/23 22:32, 16F
儲存格內有檔名:XXXX.xlsx,但是我的[完整檔名]內的完整檔名無法寫入儲存格的位址。 也就是,想要以儲存格內的值來取代檔名,但是試了好多指令都無法代入進去> < ※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 22:46:05 ※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 22:49:37

04/23 22:58, 8年前 , 17F
無法寫入儲存格的位址是指?
04/23 22:58, 17F

04/23 22:58, 8年前 , 18F
因不太了解回文的意思,原po要不要舉例或截個圖看看
04/23 22:58, 18F
假設A1儲存格的值是xxxx.xlsx,我的某一儲存格想要寫入='路徑\[A1]工作表1'!儲存格 當中的A1,我不曉得可以使用什麼指令來代入。 ※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 23:02:39

04/23 23:04, 8年前 , 19F
"='路徑\[" & range("a1") & "]工作表1'!儲存格" 方式連接
04/23 23:04, 19F
不好意思慧根不夠>< 我還是出現了#REF! ※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 23:16:59

04/23 23:22, 8年前 , 20F

04/23 23:26, 8年前 , 21F
以上回文的是從vba內所執行的,工作表資料編輯列(公式列)
04/23 23:26, 21F

04/23 23:26, 8年前 , 22F
並無法用range()
04/23 23:26, 22F
謝謝S大!VBA寫入確實可行,謝謝您讓初入vba的我又獲得學習的動力了!感謝!. ※ 編輯: jinnit09786 (42.72.191.239), 04/23/2018 23:43:53

04/24 21:07, 8年前 , 23F
S大您好,經過您的幫助,第三題我以較土法煉鋼的方式
04/24 21:07, 23F

04/24 21:08, 8年前 , 24F
完成了,如下兩張圖,但仍想請教您,我有沒有更好的
04/24 21:08, 24F

04/24 21:09, 8年前 , 25F
應用變數的方式來做判別呢?現在我只會比較土的一個一
04/24 21:09, 25F

04/24 21:10, 8年前 , 26F
個列出來,想要更有效率的撰寫來達到目的。謝謝!!
04/24 21:10, 26F

04/24 21:10, 8年前 , 27F

04/24 21:11, 8年前 , 28F
※ 編輯: jinnit09786 (42.73.32.100), 04/24/2018 21:38:42

04/25 08:28, 8年前 , 29F
04/25 08:28, 29F
謝謝S大,我學到很多! ※ 編輯: jinnit09786 (36.225.117.91), 04/25/2018 12:22:57
文章代碼(AID): #1QtNFC_W (Office)
文章代碼(AID): #1QtNFC_W (Office)