我努力讓Excel數組公式適用於通過VBA代碼。工作Excel ArrayFormula被拆分爲VBA,因爲太長
的公式如下:
=IF(B2=VLOOKUP(B2,Admin!$G$5:$G$501,1,FALSE),IFERROR(INDEX(Admin!$G$5:$K$501,MATCH(1,(Admin!$I$5:$I$501=A2)*(Admin!$G$5:$G$501=B2),0),5),INDEX(Admin!$G$5:$K$501,MATCH(1,(Admin!$I$5:$I$501="ALL")*(Admin!$G$5:$G$501=B2),0),5)),"")
我嘗試使用下面的代碼通過VBA來應用它:
Sub LongArrayformula()
Dim ArrayFormulaPart1, ArrayFormulaPart2 As String
ArrayFormulaPart1 = "=IF(B2=VLOOKUP(B2,Admin!$G$5:$G$501,1,FALSE),IFERROR(INDEX(Admin!$G$5:$K$501,XXXX"
ArrayFormulaPart2 = "MATCH(1,(Admin!$I$5:$I$501=A2)*(Admin!$G$5:$G$501=B2),0),5),INDEX(Admin!$G$5:$K$501,MATCH(1,(Admin!$I$5:$I$501=""ALL"")*(Admin!$G$5:$G$501=B2),0),5)),"""")"
With ActiveSheet.Range("bv2")
.FormulaArray = ArrayFormulaPart1
.Replace "XXXX", ArrayFormulaPart2, lookat:=xlPart
End With
End Sub
我知道在網絡上有很多網站有關這一主題的,但我不能讓這個公式自動應用。
我不斷收到錯誤「無法設置Range類的FormulaArray屬性」,並且「.FormulaArray = ArrayFormulaPart1」被突出顯示。
我試過其他的代碼也沒有運氣。由於語法對我來說幾乎是未知的,我不知道要改變什麼以適應我播種的許多代碼以滿足我的需要。
非常感謝您的幫助,並最終快速解釋如何使用VBA正確設置數組公式。
此外,只要記住接受你使用的答案。在你最後一個問題中,你承認答案有效,但不接受它。你可以通過點擊你使用的答案來勾選複選標記。如果您不提供這種類型的反饋,其他人將停止回答您的未來問題。 –