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