Есть ли способ сказать, какие ячейки ссылаются на выбранную ячейку в Excel?


3

В Excel вы можете указать ячейке ссылаться на другую ячейку, чтобы вычислить ее значение. Я хотел бы сделать наоборот, чтобы получить любые ячейки, которые ссылаются на текущую выбранную ячейку. Это вообще возможно в Excel, в качестве одной из встроенных функций или сценария VBA?

Ответы:


4

Не могу сказать, как использовать его программно, но на ленте «Формулы» есть панель «Аудит формул», которая позволяет «Отслеживать зависимости» и нарисует на листе визуальную стрелку от выбранной в данный момент ячейки до любой ссылки это через формулу.

Также есть соответствующая команда «Trace Precedents».


1
Спасибо, это сработало для меня. Однако следует иметь в виду, что это работает только для выбранный ячейка, даже если выделить более одного.
Daniel T.

Также обратите внимание, что он не работает для ячеек на другом листе, которые ссылаются на выбранную ячейку.
Firefeather

2

Очевидно, вы можете получить доступ к Trace Precedents / Dependents в макросе: Макрос-код для отслеживания зависимостей / прецедентов @ OzGrid.com со ссылкой на сообщение с завершенной функцией VBA @ vbaexpress.com :

Sub FindPrecedents() 
     ' written by Bill Manville
     ' With edits from PaulS
     ' this procedure  finds the  cells which are the direct precedents of the active cell
    Dim rLast As Range, iLinkNum As Integer, iArrowNum As Integer 
    Dim stMsg As String 
    Dim bNewArrow As Boolean 
    Application. ScreenUpdating = False 
    ActiveCell.ShowPrecedents 
    Set rLast = ActiveCell 
    iArrowNum = 1 
    iLinkNum = 1 
    bNewArrow = True 
    Do 
        Do 
            Application.Goto rLast 
            On  Error Resume Next 
            ActiveCell.NavigateArrow TowardPrecedent:=True, ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum 
            If Err.Number > 0 Then Exit Do 
            On Error Goto 0 
            If rLast.Address(external:=True) = ActiveCell.Address(external:=True) Then Exit Do 
            bNewArrow = False 
            If rLast.Worksheet.Parent.Name = ActiveCell.Worksheet.Parent.Name Then 
                If rLast.Worksheet.Name = ActiveCell.Parent.Name Then 
                     ' local
                    stMsg = stMsg & vbNewLine & Selection.Address 
                Else 
                    stMsg = stMsg & vbNewLine & "'" & Selection.Parent.Name & "'!" & Selection.Address 
                End If 
            Else 
                 ' external
                stMsg = stMsg & vbNewLine & Selection.Address(external:=True) 
            End If 
            iLinkNum = iLinkNum + 1 ' try another  link
        Loop 
        If bNewArrow Then Exit Do 
        iLinkNum = 1 
        bNewArrow = True 
        iArrowNum = iArrowNum + 1 'try another arrow
    Loop 
    rLast.Parent.ClearArrows 
    Application.Goto rLast 
    MsgBox "Precedents are" & stMsg 
    Exit Sub 
End Sub 

К вашему сведению, автор второго поста говорит, что эта функция не может обрабатывать внешние ссылки на закрытые книги. Это оставлено в качестве упражнения для читателя.



1

Нажмите Ctrl + сдвиг + } выбрать все зависимости: ячейки, которые ссылаются на выбранные ячейки.

enter image description here


1
Это кажется правильным в соответствии с это официальная таблица всех ярлыков Excel , (Тем не менее, ярлыки отличаются от раскладки клавиатуры к раскладке. Это не работает для раскладки клавиатуры на немецком языке и не нашли соответствующий аналог)
nixda

0

В Office 2007 просмотрите формулы и используйте прецеденты трассировки или зависимые трассировки. Я не могу вспомнить, где это в более ранних версиях, но это почти то же самое действие


0

На Excel 2008 (Mac) это находится:

Инструменты & gt; Аудит & gt; Трассировка зависимых

** При вводе Trace в меню Help на Mac отображаются все функции меню Trace. *

Макросы не поддерживаются на Mac, но если макрос написан с использованием версии Excel для Windows, то версия для Mac запустит его. Расстраивает, но это правда.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.