Re: [新問題]每日抓取昨日檔案的寫法

作者: handsomefun (小儒)   2016-10-22 15:56:22
大家好,小弟後來自己亂試,一度用以下的語法成功了,但是後來卻不知道為什麼都一直失敗
每次跑出來的結果都會是#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”的資料??
: 目的是希望可以不用改巨集內的檔案名稱,只要我將檔案本身名稱改變並另存新檔,然後執行巨集就可以抓到前一天的資料??
: 請各位大大幫幫忙
: 謝謝!!
:
作者: olycats ( )   2016-10-23 09:21:00
input box 輸入完之後,加一句把昨日檔案開啟試試看?
作者: handsomefun (小儒)   2016-10-23 09:34:00
我有試過openfile。檔案是可以開啟沒錯,但還是會#REF!...Orz
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-10-23 12:13:00
公式是一個字串 中間插進a要先切開 然後用 & 連接例如 "[" & a & "]!a1:b1"
作者: handsomefun (小儒)   2016-10-23 13:03:00
!!! 成功了!!謝謝大大!!!
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-10-28 09:52:00
非常好… (y)

Links booklink

Contact Us: admin [ a t ] ucptt.com