我有这个VBA功能:

Public Function testPrec(target As Range) As String
    testPrec = target.Precedents.Address(External:=False)
End Function


在单元格C11中,我有以下公式:

=C6+C8


如果我从立即窗口调用testPrec,它就可以正常工作:

?testPrec([c11])
$C$6,$C$8


编辑:如果从非UDF宏Sub调用它也可以正常工作。异常是UDF情况。

如果我从工作表中将其作为UDF调用:

=testPrec(C11)


我刚拿回“ $ C $ 11”。

有谁知道发生了什么,或者甚至更好地如何从UDF调用中获取实际的先例? (我正在使用Excel2007。)

最佳答案

我能想到的唯一解决方法是获取target.formula并对其进行解析-不太好。

07-24 09:35