如何在可以使用结构化引用的Visual Basic for Applications中编写UDF
:
=UDF([Colomn1])
或者这个:
=UDF(if(len([Colomn1])>1,[Colomn1]))
有什么想法吗?
@Rory,此函数适用于范围,但不适用于列。重复结果值。
Function udff(sRange As Range) As Variant
Dim valueArr As Variant
valueArr = sRange.Value
ReDim resArr(LBound(valueArr, 1) To UBound(valueArr, 1), LBound(valueArr, 2) To UBound(valueArr, 2))
For i = LBound(valueArr, 1) To UBound(valueArr, 1)
For j = LBound(valueArr, 2) To UBound(valueArr, 2)
resArr(i, j) = valueArr(i, j) & "!"
Next j
Next i
udff = resArr
End Function
答案 0 :(得分:1)
您的语法显示错误。 [Colomn1] 应该是 [@ Colomn1] (并且拼写正确)。
Function udf(rng As Range)
udf = rng * 2
End Function
不要混淆使用关联完整列引用与真实工作表范围引用(例如A1或A:A)与ListObject( aka 结构化)的能力)表格参考。