標題:
[發問]
跨檔案取得其中某sheet內的某欄位值,應該如何使用VBA撰寫?
[打印本頁]
作者:
ashyaurora
時間:
2012-3-27 10:22
標題:
跨檔案取得其中某sheet內的某欄位值,應該如何使用VBA撰寫?
目前有一個需要跨檔案取得最新欄位值的需求,
而且要在不開另一份檔案的狀況下取得這個欄位的值,
不知道有沒有比較好的寫法?
作者:
mark15jill
時間:
2012-3-27 10:27
本帖最後由 mark15jill 於 2012-3-27 10:39 編輯
回復
1#
ashyaurora
直接儲存格打
='位置\[檔案名稱]活頁簿名稱'!$A$1
PS 煩請附檔 大約是哪種
作者:
hugh0620
時間:
2012-3-27 10:42
之前我有問題類似的問題~
但都是打開檔案後~ 將資料抓出~ 再關掉~
提供之前大大給我的方式~ 給你參考~
http://forum.twbts.com/viewthread.php?tid=4725&highlight=
作者:
alexliou
時間:
2012-3-27 18:57
假設你要的資料存於活頁簿2(並未開啟)中工作表1的A1
而你要把這資料放到目前作用中工作表的A1
Code 如下:
Cells(1, 1).Formula = "='[活頁簿2.xlsx]工作表1'!$A$1" ' for Excel 2010
作者:
alexliou
時間:
2012-3-28 07:45
本帖最後由 alexliou 於 2012-3-28 07:50 編輯
也可以利用呼叫excel 提供的 XLM macro來達成.
底下的 GetValue Function有四個引數 :
•path: 資料所在檔案的路徑 (e.g., "d:\Data\ or d:\Data")
•file: 活頁簿名稱 (e.g., "Input.xls" or "Input.xlsx)
•sheet: 工作表名稱 (e.g., "Sheet1")
•ref: 你所要的值所在儲存格的位址參照 (e.g., "C5")
Private Function GetValue(path, file, sheet, ref)
' 從一個關閉的活頁簿中取資料
Dim arg As String
' 確定檔案存在
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' 設定執行XLM Macro的參數
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
' 執行Microsoft Excel 4.0 巨集
GetValue = ExecuteExcel4Macro(arg)
End Function
作者:
VANESSA
時間:
2012-3-28 10:01
請問可以提供實際的檔案嗎,謝謝
包含XLM檔.資料存於活頁簿2.資料放到目前作用中工作表的A1
作者:
alexliou
時間:
2012-3-29 07:14
本帖最後由 alexliou 於 2012-3-29 07:32 編輯
回復
6#
VANESSA
附件中有兩個檔案
活頁簿2是關閉中(開啟中的也workable)的檔案, 你所要的資料假設在其中工作表1的"D3"儲存格
活頁簿2請把它放到 C:\Users\user\Documents 資料夾
這個檔案放到哪裡將會影響到GetValue函數的第一個引數
活頁簿1的工作表1是目前作用中的工作表
命令按鈕的工作很單純
就是去執行 Cells(1, 1).Value = GetValue("C:\Users\user\Documents", "活頁簿2.xlsx", "工作表1", "D3")
[attach]10194[/attach]
作者:
Hsieh
時間:
2012-3-29 08:30
本帖最後由 Hsieh 於 2012-3-29 08:32 編輯
回復
6#
VANESSA
這樣簡單範例應該比較容易知道如何使用
A1公式
='D:\[Book2.xls]Sheet1'!A1
A2是執行巨集nn的結果,A2是得到Book2的Sheet1工作表A1的值
Sub nn()
[A2] = ExecuteExcel4Macro("'D:\[Book2.xls]Sheet1'!R1C1") '使用4.0巨集取值,必須使用R1C1形式參照
End Sub
複製代碼
[attach]10195[/attach]
作者:
VANESSA
時間:
2012-3-30 17:08
試成功,但是如果我想再更進階
在活頁簿1選"201"就會出現活頁簿2的201資料
在活頁簿1選"202"就[attach]10244[/attach]會出現活頁簿2的202資料 (此時活簿2的資料也會改)
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)