![](/img/trans.png)
[英]Function not writing to required cell following array calculation ; excel vba userforms
[英]Excel VBA Pass Cell Array into Function
我正在嘗試編寫一個簡單的VBA函數,如下所示:
Public Function ReturnMMult(Arr1() As Variant, Arr2() As Variant) As Variant
ReturnMMult = WorksheetFunction.MMult(Arr1,Arr2)
End Function
但這總是給我#VALUE! 我曾嘗試將Arr's更改為Ranges,但這也不起作用。 我基本上希望能夠編寫可以采用$ A1:$ A10之類的函數。 在很多地方看過,無法弄清楚。 我究竟做錯了什么?
就像是
Public Function M(a As Excel.Range, b As Excel.Range) As Variant()
Dim a1() As Variant
Dim a2() As Variant
a1 = a.value
a2 = b.value
M = Application.WorksheetFunction.MMult(a1, a2)
End Function
這是MMult工作表功能的用法示例。 請根據您的情況采用它。
Sub test()
Dim xArray As Variant, yArray As Variant, zArray As Variant
Dim Fn As Object
Set Fn = Application.WorksheetFunction
xArray = Range("A1:B2").Value
yArray = Range("D1:E2").Value
zArray = Fn.MMult(xArray, yArray)
ActiveCell.Resize(2, 2).Value = zArray
End Sub
MMult返回#VALUE! 錯誤時間:任何單元格為空或包含文本。 array1中的列數與array2中的行數不同。 所得數組的大小等於或大於5,461個單元的總數。 參考WorksheetFunction.MMult方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.