自定义函数,适用于Excel表格中的结构化引用

时间:2016-06-28 14:53:46

标签: vba excel-vba excel-formula udf excel

如何在可以使用结构化引用的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

1 个答案:

答案 0 :(得分:1)

您的语法显示错误。 [Colomn1] 应该是 [@ Colomn1] (并且拼写正确)。

Function udf(rng As Range)
    udf = rng * 2
End Function

colomn1

不要混淆使用关联完整列引用与真实工作表范围引用(例如A1或A:A)与ListObject aka 结构化)的能力)表格参考。

colomn2