![](/img/trans.png)
[英]Excel-vba: Get the selected cell in a cell formula using a user defined function (UDF)
[英]How to pass an array of results in a User defined Function in Excel-VBA?
我正在檢查是否有任何方法可以在UDF中傳遞結果數組。
如果傳遞范圍,例如- $A$2:$A$5
,我的函數將按預期工作,但是如果傳遞范圍之前,例如IF($A$2:$A$5 < 3, $A$2:$A$5 ,"")
帶有控制+ Shift + Enter。
這是我正在使用的代碼-
Public Function ReverseTextToColumns(Rg As Range, Optional D As String = " ") As String
Dim xArr
xArr = Application.WorksheetFunction.Transpose((Rg.Value))
ReverseTextToColumns = Join(xArr, D)
End Function
我不想創建一個復雜的函數,而只是想知道如何在UDF中傳遞結果數組。
問題似乎是這種情況:
$A$2:$A$5 < 3
返回FALSE
,這意味着將空字符串""
傳遞給函數。 這與參數的類型不兼容Range
; 以下功能:
Function TestRng(rng As Range) As Boolean
TestRng = True
End Function
還返回#VALUE!
在像這樣的公式中使用時:
=TestRng("")
建議您將參數設置為Variant
類型,並在UDF中使用VBA TypeName
函數檢查它是否實際上是Range
。
注意 在這種情況下,您的目標是什么- $A$2:$A$5 < 3
? 將單元格范圍與數字進行比較是什么意思?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.