Ta funkcja zwraca oddzieloną przecinkami listę komórek źródłowych (precedensów):
Function References(rngSource As Range) As Variant
Dim rngRef As Range
Dim strTemp As String
On Error Resume Next
For Each rngRef In rngSource.Precedents.Cells
strTemp = strTemp & ", " & rngRef.Address(False, False)
Next
If Len(strTemp) 0 Then strTemp = Mid(strTemp, 3)
References = strTemp
End Function
Należy jednak pamiętać, że nie można tego użyć jako arkusza kalkulacyjnego UDF w arkuszu roboczym, ponieważ numer rngRef.Address
powoduje niestety odwołanie cykliczne. Możesz jednak użyć go w małej procedurze, aby wypełnić inną kolumnę, np.
Sub ShowPrecedents()
Dim rng As Range
'Will paste precedents of A1:A6 into D1:D6
For Each rng In Range("D1:D6")
rng.Value = References(rng.Offset(, -3))
Next
End Sub
Będzie działać w przypadku lokalnych odniesień arkuszy, ale nie w przypadku odsyłaczy poza arkuszem. – brettdj