Board logo

標題: [發問] 變動檔名之不同檔案讀值問題 [打印本頁]

作者: pideo    時間: 2015-10-1 22:16     標題: 變動檔名之不同檔案讀值問題

請問一下小弟目前遇到一個問題卡住了
小弟目前有一個a.xlsm檔
其中a檔工作表1的A1儲存格為手動打入一名稱例如 A(20151001)
而這個名稱 A(20151001)會剛好對應一個excel檔,其名稱就是 A(20151001).xlsm
請問一下如果要在a檔工作表1的B1顯示A(20151001).xlsm的A1儲存格的值時
小弟在B1裡寫入 ='D:\資料\[A(20151001).xlsm]工作表1'!$A$1
這樣確實可以讀到數值
但問題就是每次都要自己手動打上檔名@@~~~
請問有辦法讓他自己讀取a檔的A1儲存格值當作檔名去讀取路徑下的檔名嗎
小弟這樣寫一直顯示錯誤
="'D:\資料\[" & workbooks(a檔).worksheets(工作表1).cell(1.1) & ".xlsm]"工作表1'!$A$1
請問該如何改寫@@~~~
懇請指導
感恩
作者: lpk187    時間: 2015-10-1 23:03

回復 1# pideo


    Range("B1") = "='D:\資料\[" & [a1] & ".xlsm]工作表1'!$A$1"
作者: pideo    時間: 2015-10-2 09:57

回復 2# lpk187


    感謝指導
但小弟使用後還是有疑問請教一下
先前使用小弟的寫法時可以取得讀值12,但無法隨儲存格資料變動而自動變動取檔之檔名
在A1儲存格裡直接打入 ='D:\1\[1.xlsm]工作表1'!$A$1
狀況如下圖
[attach]22130[/attach]

而使用大大的方式後確實可以隨儲存格資料變動而改變取檔檔名,但是可以看到在該儲存格卻只顯示出這段文字而非檔案之數值
= "='D:\1\[" & E1 & ".xlsm]工作表1'!$A$1"
[attach]22131[/attach]

請問一下是不是小弟有哪邊弄錯了
感恩
作者: lpk187    時間: 2015-10-2 11:13

回復 3# pideo


    = "='D:\1\[" & E1 & ".xlsm]工作表1'!$A$1"
錯在E1
E1為儲存格,必須要用中括號[E1]
= "='D:\1\[" & [E1] & ".xlsm]工作表1'!$A$1"
作者: pideo    時間: 2015-10-2 22:23

回復 4# lpk187

請問一下我有試過加個[ ]中括號
但是卻會顯示這,然後要我修正
[attach]22134[/attach]
作者: lpk187    時間: 2015-10-2 22:54

回復 5# pideo


    可以把檔案或程式PO式上來看看嗎?光是這樣看,我也不知問題在哪?
作者: pideo    時間: 2015-10-3 10:29

回復 6# lpk187
已下就是小弟的檔案
懇請協助感恩
[attach]22139[/attach]
作者: lpk187    時間: 2015-10-3 11:41

回復 7# pideo


    看來我是誤會你的意思了,原來你不是用VBA用來寫入的!
真抱歉,我上面的回答,都是以VBA來表示,手打入儲存格用變數,我還真的不會!
不過後還是貼上VBA的寫法
Public Sub exx()
Range("E4") = "='D:\資料\[" & [E1] & ".xlsm]工作表1'!$A$1"
End Sub
作者: pideo    時間: 2015-10-3 13:08

回復 8# lpk187
還是感謝指導:D
目前還是搞不懂為何不能直接放入儲存格
作者: pideo    時間: 2015-10-9 12:42

回復 8# lpk187

小弟現在改用vba來弄了
但又遇到一個難題就是如果是範圍選取的話第一個檔案選取沒問題但到第二個時位置就會出錯
例如
sub xxx()      
        Range("A1:E5") = "='D:\資料\[檔案1.xlsm]工作表1'!$A$1:$E$5"
        Range("A6:E10") = "='D:\資料\[檔案1.xlsm]工作表2'!$A$1:$E$5"
        Range("A11:E15") = "='D:\資料\[檔案1.xlsm]工作表3'!$A$1:$E$5"
end sub
A1:E5顯示的是正確的
但這時A6:E15全都顯示錯誤#VALUE!
請問小弟哪弄錯了
懇請指導
感恩




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)