這個數組公式只是正常CTRL SHT輸入:ARRAYFORMULA VBA中使用Excel 2007
={IF(ROWS(A$7:A7)>A$4,"",IF(SUMPRODUCT((consumers=$A$6)*(data=A$5)*(data=A$5<>""))>0,INDEX
(employees,SMALL(IF(((consumers=$A$6)*(data=A$5)*(data=A$5<>"")),COLUMN(Data!$B$2:$AC$2)-COLUMN
(Data!$B$2)+1),ROWS(A$7:A7)))))}
我做了一些研究和閱讀,我將不得不使用R1C1 notatation如果我想用這個公式中的VBA ......所以這是我迄今:
Sub frmarry()
Range("y28").Select
Selection.FormulaArray = "=IF(ROWS(R28C25:R28C25)>R26C25,"",IF(SUMPRODUCT((consumers=R27C25)*
(data=R24C7)*(data=R24C7<>""))>0,INDEX(staff,SMALL(IF(((consumers=R27C25)*(data=R24C7)*
(data=R24C7<>"")),COLUMN(Data!$R2C2:$R2C29)-COLUMN(Data!R2C2)+1),ROWS(R28C25:R28C25)))))"
End Sub
現在,當我運行程序我得到一個標誌:
'unable to set the FormaulaArray property of the Range class'
如果我選擇調試,它會突出顯示上面的arrayformula。
我剛剛使用excel設置來將我的公式設置爲R1C1表示法,所以在轉換中可能會出現一些誤區。由於我不熟悉R1C1表示法,我希望有人更熟悉R1C1可以幫助我解決這個問題,或者指出我朝某個方向發展,以便解決這個VBA問題。
謝謝。
當我將它輸入到Excel表格中時,數組公式給我一個錯誤。好像你錯過了什麼? – 2012-08-10 17:44:26
試一下沒有VBA數組公式中的美元符號 – 2012-08-10 17:47:11
感謝Siddharth Rout ......我只是意識到我列出了兩個不同的arrayformula ......一個指向A7,另一個指向Y28 ......但我相信arrayformula本身是正確的。 – thomasvermaak 2012-08-10 17:50:01