Existem dois métodos possíveis, primeiro é Não-programação e o segundo é programação (Macro).
Método de não programação:
- Clique na guia Fórmula.
- Encontre o Grupo de auditoria de fórmulas & Clique em Mostrar Ícone de fórmula , disponível no canto superior direito.
-
O atalho do teclado é Ctrl + '.
-
No Grupo de auditoria de fórmulas , você encontra Rastreio Precedentes, basta clicar para ver o relacionamento.
Método de programação (macro VBA):
Sub ExtractAllFormulas()
Dim sht As Worksheet
Dim shtName
Dim myRng As Range
Dim newRng As Range
Dim c As Range
ReTry:
shtName = Application.InputBox("Write name of the new sheet to list all formulas.", "New Sheet Name")
If shtName = False Then Exit Sub
On Error Resume Next
Set sht = Sheets(shtName)
If Not sht Is Nothing Then
MsgBox "This sheet already exists"
Err.Clear
Set sht = Nothing
GoTo ReTry
End If
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
Application.ScreenUpdating = False
With ActiveSheet
.Range("A1").Value = "Formula"
.Range("B1").Value = "Sheet Name"
.Range("C1").Value = "Cell Address"
.Name = shtName
End With
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> shtName Then
Set myRng = sht.UsedRange
On Error Resume Next
Set newRng = myRng.SpecialCells(xlCellTypeFormulas)
For Each c In newRng
Sheets(shtName).Range("A65536").End(xlUp).Offset(1, 0).Value = Mid(c.Formula, 2, (Len(c.Formula)))
Sheets(shtName).Range("B65536").End(xlUp).Offset(1, 0).Value = sht.Name
Sheets(shtName).Range("C65536").End(xlUp).Offset(1, 0).Value = Application.WorksheetFunction.Substitute(c.Address, "$", "")
Next c
End If
Next sht
Sheets(shtName).Activate
ActiveSheet.Columns("A:C").AutoFit
Application.ScreenUpdating = True
End Sub
Como funciona:
- Insira este código VBA como módulo.
- Assim que você executar, ele exibirá a caixa de entrada.
- Escreva um novo nome de planilha & termine com Ok.
Este código listará toda a fórmula na nova planilha.