假設我想使用Evaluate函數來評估返回值範圍的數組公式。例如,我嘗試在Sheet2中的有序列表中獲取索引(使用Excel函數MATCH)!A:A爲Sheet1中的每個值!A:A。我希望把索引列B.VBA評估函數和數組公式返回值的範圍
Dim sh as Worksheet
Set sh = Sheets("Sheet1")
sh.Range("B1:B10").Value = sh.Evaluate("=MATCH(A1:A10,Sheet2!A:A)")
煥我運行代碼,我得到重複值的列 - 值等於第一個元素的索引。這是不正確的。
當我將數組公式應用於工作表{= MATCH(A1:A10,Sheet2!A:A)}時,它的工作原理沒有問題,併爲每個元素返回正確的索引。
所以我的問題:如何使用評估函數返回一個完整的值範圍?
嘗試'評估( 「= TRANSPOSE(MATCH(A1:A10,Sheet 2中!A:A))」)'或'Application.Transpose(評估(「= MATCH(A1:A10,Sheet2的甲! A)「))' – 2014-12-27 17:20:14
不,那也行不通 - 我測試過了。如果它工作,我會感到驚訝,因爲A1:A10是一列源值,而B1:B10也是一列。我想,轉置不是必要的。 – 2014-12-27 17:24:38