Адрес первого слоя прецедентных ячеек через VBA в Excel - PullRequest
2 голосов
/ 26 октября 2011

На панели инструментов отладки вы можете нажать кнопку, которая показывает вам направленные стрелки ячеек, которые непосредственно вызваны выбранной ячейкой (я называю эти прямые прецеденты «первым слоем»).Однако, когда вы используете свойство Precedents в ячейке, оно возвращает все ячейки на листе, от которых зависит ячейка.

Например, у меня есть ячейка DT836 с формулой:

=DP836+DR836+DS836

Панель «Отладка трассировки» показывает симпатичную синюю стрелку, соединяющую эти три ячейки с ячейкой DT836.

Range("DT836").Precedents содержит диапазон ячеек более 70 000 с (насколько ямогу сказать) нет способа отличить, насколько далек зависимый от своего прецедента.

Есть ли способ определить это с помощью VBA?

Ответы [ 2 ]

5 голосов
/ 26 октября 2011

Оказывается, есть другое свойство для диапазонов, которое говорит вам об этом, DirectPrecidents.

Я думал, что это будет собственность прецедентов, а не отдельная собственность сама по себе.

3 голосов
/ 26 октября 2011

Алек,

Спасибо, что закрыли свой вопрос.Я публикую эти комментарии как ответ, а не как комментарий, учитывая их длину

Excel довольно ненадежен, когда речь заходит о трехмерной функциональности (на разных листах).И Precedents, и DirectPrecedents работают только на листе local

. Для работы с листовыми прецедентами и зависимостями вам необходимо использовать NavigateArrows Method ,это VBA-эквивалент трассировки прецедентов и зависимых с помощью панели инструментов аудита.

Билл Мэнвилл некоторое время назад проделал тяжелую работу над этим подходом, ниже приведены две ссылки, в которых использовался подход Билла.Первая предоставляет функцию Билла, вторая ссылка от меня, эта статья выглядит «задом наперед», чтобы проверить, ссылается ли определенное число на конкретный лист

...