返回列表 上一主題 發帖

[發問] 跨檔案取得其中某sheet內的某欄位值,應該如何使用VBA撰寫?

假設你要的資料存於活頁簿2(並未開啟)中工作表1的A1
而你要把這資料放到目前作用中工作表的A1
Code 如下:
Cells(1, 1).Formula = "='[活頁簿2.xlsx]工作表1'!$A$1"         ' for Excel 2010
Alex

TOP

本帖最後由 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
Alex

TOP

本帖最後由 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")
活頁簿1.zip (25.87 KB)
Alex

TOP

        靜思自在 : 手心向下是助人,手心向上是求人;助人快樂,求人痛苦。
返回列表 上一主題