作者handsomefun (小儒)
看板Visual_Basic
標題Re: [新問題]每日抓取昨日檔案的寫法
時間Sat Oct 22 15:56:22 2016
大家好,小弟後來自己亂試,一度用以下的語法成功了,但是後來卻不知道為什麼都一直失敗
每次跑出來的結果都會是#REF!
不知道是不是他還是無法連結到我要連結的檔案呢?
想懇請高手們幫我看看,我該怎麼做比較好?
Sub NeedHelp()
Application.DisplayAlerts = False
a = InputBox("請輸入前一日檔案名稱", "輸入前日日期", "Daily Report 2016")
Worksheets("D1").Range("E57").Formula = "='C:\Users\Desktop\Files\[a.xlsx]D1'!$E$41"
Worksheets("D1").Range("F57").Formula = "='C:\Users\Desktop\Files\[a.xlsx]D1'!$F$41"
Worksheets("D3").Range("E57").Formula = "='C:\Users\Desktop\Files\[a.xlsx]D3'!$E$41"
Worksheets("D3").Range("F57").Formula = "='C:\Users\Desktop\Files\[a.xlsx]D1'!$F$41"
End Sub
其中,因為我的檔案名稱是Daily Report 2016xxxx.xlsx
我想要做到的是InputBox跳出來,會顯示"Daily Report 2016"然後我只要輸入例如說1020
他就會去抓取Daily Report 20161020.xlsx裡面的資料
D1跟D3分別是兩張工作表
因為我每天會生成一份新的報表,但要對照前一日的資料
所以我想要在10/21的檔案裡面,D1這個工作表去抓取10/20檔案裡面D1工作表的資料,D3也是
所以我希望我能讓他跳出InputBox,然後我輸入1020就搞定這件事情
希望大家可以救救我!謝謝!!
※ 引述《handsomefun (小儒)》之銘言:
: 大家好,小弟想請問一個關於自動抓去昨日檔案的儲存格內容的方式
: 因為我的工作必須每日生成一份報表
: 然後改日期並儲存成新的檔案
: 但是每天都會用到前一日的檔案
: 我知道如何用VBA去抓去跨檔案的資料
: 但不知道能不能配合上自動偵測檔名去抓取資料呢??
: 例如今日的檔案名稱叫做“檔案1021”
: 能不能讓VBA自動去抓取“檔案1020”的資料??
: 目的是希望可以不用改巨集內的檔案名稱,只要我將檔案本身名稱改變並另存新檔,然後執行巨集就可以抓到前一天的資料??
: 請各位大大幫幫忙
: 謝謝!!
: -----
: Sent from JPTT on my LGE LG-H815.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.100.250
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1477122985.A.5F4.html
※ 編輯: handsomefun (118.168.100.250), 10/22/2016 15:57:27
1F:推 olycats: input box 輸入完之後,加一句把昨日檔案開啟試試看? 10/23 09:21
2F:→ handsomefun: 我有試過openfile。檔案是可以開啟沒錯,但還是會#RE 10/23 09:34
3F:→ handsomefun: F!...Orz 10/23 09:34
4F:→ MOONRAKER: 公式是一個字串 中間插進a要先切開 然後用 & 連接 10/23 12:13
5F:→ MOONRAKER: 例如 "[" & a & "]!a1:b1" 10/23 12:14
6F:→ handsomefun: !!! 成功了!! 10/23 13:03
7F:→ handsomefun: 謝謝大大!!! 10/23 13:03
8F:→ MOONRAKER: 非常好… (y) 10/28 09:52