如何取得某個檔案的儲存格資料?(檔案檔名,寫在存儲存格內)
- 帖子
- 79
- 主題
- 33
- 精華
- 0
- 積分
- 123
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- x64
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2013-10-24
- 最後登錄
- 2024-3-28
|
如何取得某個檔案的儲存格資料?(檔案檔名,寫在存儲存格內)
本帖最後由 eigen 於 2013-11-6 14:52 編輯
如何取得某個檔案的儲存格資料?(檔案檔名,寫在存儲存格內)
目前做出來的:
https://dl.dropboxusercontent.com/u/12575824/Book3.xls
我參考 http://forum.twbts.com/thread-6224-1-1.html 完成了 開啟檔案讀取檔名的功能。
現在我想要的是參考這個儲存格,動態抓取檔案內的資料。
原本寫死的是這樣 A2 = 'D:\report\[20131106 銷貨.xls]Sheet4'!$E7
Setup!B1=D:\report\20131106 銷貨.xls
現在我希望是 A2 = Setup!B1 !Sheet4'!$E7
這樣該用什麼語法來做?
麻煩大德指點,謝謝~~ |
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2013-11-6 23:15
| 只看該作者
如何取得某個檔案的儲存格資料?(檔案檔名,寫在存儲存格內)
目前做出來的:
https://dl.dropboxus ...
eigen 發表於 2013-11-6 14:50 
A2=INDIRECT(CONCATENATE("'",LEFTB(CELL("filename",Setup!B1),FINDB("]",CELL("filename",Setup!B1),1)),"Sheet4","'","!E7"),1) |
|
|
|
|
|
|
- 帖子
- 79
- 主題
- 33
- 精華
- 0
- 積分
- 123
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- x64
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2013-10-24
- 最後登錄
- 2024-3-28
|
3#
發表於 2013-11-7 10:57
| 只看該作者
A2=INDIRECT(CONCATENATE("'",LEFTB(CELL("filename",Setup!B1),FINDB("]",CELL("filename",Setup!B1), ...
luhpro 發表於 2013-11-6 23:15 
謝謝~~不過....cell 抓到的目前檔案的filename ,而我要的檔案 filename 已經寫在 Setup!B1 |
|
|
|
|
|
|
- 帖子
- 79
- 主題
- 33
- 精華
- 0
- 積分
- 123
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- x64
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2013-10-24
- 最後登錄
- 2024-3-28
|
4#
發表於 2013-11-7 12:09
| 只看該作者
本帖最後由 eigen 於 2013-11-7 12:11 編輯
我改寫 http://forum.twbts.com/thread-6224-1-1.html 抓檔案的方式- Private Sub CommandButton1_Click()
- Dim file_Input As String
- Dim file_path As String
- Dim file_name As String
- Dim file_index As Integer
- file_Input = Application.GetOpenFilename("EXCE檔(*.XLS),*xls")
-
- If file_Input <> "" Then
- file_index = InStrRev(file_Input, "\")
-
- file_path = Left(file_Input, InStrRev(file_Input, "\"))
- file_name = Right(file_Input, Len(file_Input) - InStrRev(file_Input, "\"))
-
- MsgBox "Reference " & file_Input
- 'Cells(1, 2) = file_path
- Range("B1").Value = file_path & "[" & file_name & "]"
-
- ' Range("B2").Value = file_path
- ' Range("B3").Value = file_name
- ' Range("B4").Value = file_Input
- End If
- End Sub
複製代碼 儲存格的顯示就改成這樣
Setup!B1= D:\report\[20131106 銷貨.xls]
我又在 名稱 定義了 ref_point ="'"&Setup!$B$1&Setup!$B$8&"'!"
如果在儲存格直接填入 ref_point ='D:\report\[20131106 銷貨.xls]Sheet4'!
接著我參考的 luhpro 的寫法 儲存格=indirect(ref_point&"A7",1) 終於可以抓到另一個檔案的資料了
目前的進度
https://dl.dropboxusercontent.com/u/12575824/Book3.xls
現在有兩個問題
一、indirect(ref_point&"A7",1) 會顯示 #REF! ,除非將 D:\report\20131106 銷貨.xls 開啟
二、indirect(ref_point&"A7",1) copy 到其它儲存格, a7不會遞增成 a8 a9 a10 a11....
請高手幫幫忙,這兩個問題怎麼克服,謝謝:'( |
|
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
5#
發表於 2013-11-7 21:55
| 只看該作者
本帖最後由 luhpro 於 2013-11-7 21:57 編輯
...
現在有兩個問題
一、indirect(ref_point&"A7",1) 會顯示 #REF! ,除非將 D:\report\20131106 銷貨.xls 開啟
二、indirect(ref_point&"A7",1) copy 到其它儲存格, a7不會遞增成 a8 a9 a10 a11....
請高手幫幫忙,這兩個問題怎麼克服,謝謝:'(
eigen 發表於 2013-11-7 12:09 
一、 標的檔案未開啟的狀態下抓不到儲存格內容是正常的.
若想要避免秀出錯誤訊息的話,
我較常用的方式是在會出現 #REF! 的公式上套用 :
=IF(ISERROR(原公式),"",原公式)
的形式,
這樣若有錯誤發生則變成不顯示任何文字.
二、可以用 indirect(ref_point&"A"&ROW()+1,1)
以上假設公式放在 第 6 列任一儲存格上,
ROW() = 6 再 + 1 就是 7 了,
至於其下一列 : ROW() = 7 再 + 1 就是 8 了. (加減多少依公式所在儲存格的列號來決定) |
|
|
|
|
|
|