Skapa formellista för aktivt arbetsblad
Att dokumentera arbetsböcker är alltid värdefullt, i synnerhet på lång sikt. Inte minst vid revidering av mer komplexa arbetsböcker.
Här demonstreras hur vi kan dokumentera formler för ett arbetsblad.
Option Explicit
Sub Skapa_Formel_Lista()
'© 2002 Alla rättigheter XL-Dennis
Dim wsBlad As Worksheet
Dim rnCell As Range
Dim stTitel As String
Dim i As Integer
stTitel = "Skapa formellista"
'Felhantering ifall det inte finns celler med formler
'i det aktiva arbetsbladet.
On Error Resume Next
Set rnCell = Range("A1").SpecialCells(xlFormulas, 23)
If rnCell Is Nothing Then
MsgBox "Inga formler hittades!", vbInformation, stTitel
Exit Sub
End If
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
With ActiveWorkbook
.Worksheets("Formler i " & rnCell.Parent.Name).Delete
.Worksheets.Add before:=Worksheets(1)
End With
On Error GoTo 0
Set wsBlad = ActiveSheet
wsBlad.Name = "Formler i " & rnCell.Parent.Name
With wsBlad
Range("A1") = "Celladress"
Range("B1") = "Formel"
Range("C1") = "Värde"
With Range("A1:C1")
.Font.Bold = True
.Font.ColorIndex = 10
.Font.Size = 9
End With
End With
i = 2
For Each rnCell In rnCell
With wsBlad
Cells(i, 1) = rnCell.Address _
(RowAbsolute:=False, ColumnAbsolute:=False)
'Beroende på formelkonstruktion visas olika resultat
If rnCell.HasArray Then
Cells(i, 2) = "{" & rnCell.Formula & "}"
Else
Cells(i, 2) = " " & rnCell.Formula
End If
Cells(i, 3) = rnCell.Value
i = i + 1
End With
Next rnCell
wsBlad.Columns("A:C").AutoFit
With Application
.StatusBar = False
.DisplayAlerts = True
.ScreenUpdating = True
End With
End Sub