[英]getting vales from different file locations contained in cells Excel
因此,我嘗試在Excel和M5單元格中創建一個跟蹤文件,我具有一個鏈接到支持文檔的文件位置,因此包含一些重復的信息,因此我想嘗試提取某些字段(在此示例中為B8 )從M5中引用的外部文件中。
我試過了=([M5]Sheet1!B8)
,它在某種程度上可以工作,但是會彈出一個對話框,我必須手動選擇文件位置,這對於此目的來說太手工了。
我也研究了使用INDIRECT函數,但不能保證兩個文件都可以同時打開,因此,如果可能的話,建議使用其他選項。
任何建議將不勝感激!
這是您可以用來從封閉的工作簿中獲取單個單元格值的公式。
這是一個用戶定義函數(UDF),您可以這樣稱呼它:
=GetClosedCell(A3,B3,C3)
第一個參數是工作簿的路徑和名稱。
第二個參數是工作表名稱。
第三個參數是單元的地址。
將此函數放在標准代碼模塊中:
Public Function GetClosedCell(ByVal FileSpec$, ByVal SheetName$, ByVal RangeAddress$)
Const CNX = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[];Extended Properties=""Excel 12.0;imex=1;hdr=no;"""
Const QRY = "SELECT * FROM [.$|:|]"
On Error GoTo errorh
RangeAddress = Range(RangeAddress)(1, 1).Address(0, 0)
With CreateObject("adodb.recordset")
.Open Replace(Replace(QRY, "|", RangeAddress), ".", SheetName), Replace(CNX, "[]", FileSpec)
GetClosedCell = .Fields(0)
End With
Exit Function
errorh:
GetClosedCell = "ERROR: " & Err & " " & Err.Description
End Function
這是它在工作表上的外觀:
無需打開外部文件就可以獲取數據。 為了使Excel獲得數據項,它需要知道:
我們將所需的信息輸入某個單元格,例如以非常特定的格式表示單元格C3 :
'C:\TestFolder\[ABC.xls]xxx'!R9C2
注意單引號!
然后運行這個簡短的宏:
Public Sub GrabData()
Dim r1 As Range, r2 As Range
Set r1 = Range("C3")
Set r2 = Range("C4")
r2.Value = ExecuteExcel4Macro(r1.Value)
End Sub
將檢索數據並將其放置在單元格C4中
宏非常易於安裝和使用:
如果您保存工作簿,則宏將隨其一起保存。 如果您在2003年以后使用Excel版本,則必須將文件另存為.xlsm而不是.xlsx
刪除宏:
要從Excel使用宏:
要總體上了解有關宏的更多信息,請參見:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/zh-CN/library/ee814735(v=office.14).aspx
必須啟用宏才能使其正常工作!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.