Цитата:
Ergistael
Вот так попробуй (для активной ячейки с формулой =СУММ(A3:A5)+E3*G5)
Код:
Public Sub test()
Dim p As Range
For Each p In ActiveCell.Precedents.Areas
Debug.Print p.Address
Next p
End Sub
AndVGri,
Спасибо большое, это, к сожалению, не решает для: =СУММ(A3:A5)+A3*G5, поскольку A3 входит в диапазон A3:A5 (я писал, что этого нужно избежать).
Пока придумал такое решение:
Добавлено:
Sub TestPrecAreas()
ActiveCell.ShowPrecedents
rangecount = 1
initcell = ActiveCell.Address
While Not currentcell = initcell
ActiveCell.NavigateArrow True, rangecount
currentcell = ActiveWindow.Selection.Address
MsgBox ActiveWindow.Selection.Address
rangecount = rangecount + 1
Range(initcell).Activate
Wend
MsgBox ("Finished!")
ActiveCell.ShowPrecedents Remove:=True
End Sub
Думаю, как оптимизировать...
Добавлено:
Еще проблема: как получить диапазоны в том виде, в каком они входят в формулу (т.е. абсолютные ссылки или относительные, а не все одинаково).