При вызове из UDF VBA Excel, Range.Preceients возвращает диапазон, а не его прецеденты. Есть ли обходной путь?

У меня есть эта функция 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

EDIT: Он также отлично работает, если вызывается из макроса Sub, не относящегося к UDF. Аномалия - это случай UDF.

Если я назову его из рабочего листа как UDF:

=testPrec(C11)

Я просто верну «$ C $ 11».

Кто-нибудь знает, что происходит, или даже лучше, как получить фактические прецеденты в рамках вызова UDF? (Я использую Excel 2007.)

8
задан jtolle 4 April 2011 в 18:20
поделиться