With VBA, it's easy to show precedents of the cell :
But when we compile this as an UDF,it won't work in worksheet:
If we input a formula "=MyPrecedents(A1)" in [B1],it will show "$A$1" instead of "$B$2,$C$3,$D$9". It returns only the address of MyCell! I t is not passed to the function as an argument ,What's wrong with it?
Furthermore, if we need the expression with orign data, a feasible method is to use "Worksheet_Change" event subroutine instead. (See F36 of http://club.excelhome.net/viewthread.php?tid=663427&pid=4519978&page=4)
And after many tests,I found a way to use UDF at last.