I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvad mener du med at formlerne er for lange? Kan du ikke se hele indholdet, så dobbelklik på overskriftslinien (f.eks. A og B) mellem to kolloner, så udvider kollonen sig til størrelsen af det længste felt i kollonen.
Kan du bruge nedenstående kode? Den frasorterer værdier, dvs. celler med en fast værdi (<> en formel).
Function getColName(col_no) a = col_no Mod 26 b = col_no \ 26 If b > 0 Then st = Chr(65 + b) st = st & Chr(65 + a) getColName = st End Function Function getCellName(r, c) getCellName = getColName(c) & r End Function Sub showFormula() Worksheets("Ark1").Activate ActiveSheet.UsedRange.Select
Dim s As Range
Set s = Selection For r = 1 To s.Rows.Count For c = 1 To s.Columns.Count If s(r, c).Cells(1, 1).Formula <> "" & (s(r, c).Cells(1, 1).Value) And s(r, c).Cells(1, 1).Formula <> "" Then st = st & getCellName(r, c) & s(r, c).Cells(1, 1).Formula & vbCrLf End If Next c Next r
Jeg kører en engelsk version, så du må selv bruge fantasien til at oversætte hvordan, men jeg plejer at gøre sådan:
Tryk på Alt+F8 så kommer makromenuen frem. Hvis der er makroer i forvejen, vælger du en af dem og vælger Edit(rediger), derefter trykker Ctrl+End så du kommer til slutningen af filen, her indsætter du de tre linier med funktionen.
Denne makro opretter et nyt ark og skriver de informationer (arknavn, celle , formel) der er knyttet til det ark du stod på da du startede makroen Den skriver udelukkende de celler der er formler i.
Sub get_all_formulas() Dim ActivSh As Worksheet, NewSh As Worksheet Dim rng As Range, c As Range Dim x As Long
Application.ScreenUpdating = False Set ActivSh = ActiveSheet Set NewSh = Worksheets.Add Set rng = ActivSh.UsedRange.SpecialCells(xlCellTypeFormulas, 23) For Each c In rng x = x + 1 NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ", " & c.Address & ", " & c.FormulaLocal Next NewSh.Columns("A:A").EntireColumn.AutoFit Application.ScreenUpdating = True End Sub
Bak -- det du skriver har jeg næsten fået til at virke, men synes ikke at den vil skrive hele formlen, den skriver kun hvor forlmel er og at det er en beregning.
Det forstår jeg ikke lige. her funker den fint Linien her var brækket, det er måske derfor NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ", " & c.Address & "," & .FormulaLocal
ellers prøv
Sub get_all_formulas() Dim ActivSh As Worksheet, NewSh As Worksheet Dim rng As Range, c As Range Dim x As Long
Application.ScreenUpdating = False Set ActivSh = ActiveSheet Set NewSh = Worksheets.Add Set rng = ActivSh.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
For Each c In rng x = x + 1 NewSh.Range("a1").Offset(x, 0) = c.Parent.Name & ", " & c.Address NewSh.Range("a1").Offset(x, 1) = "'" & c.FormulaLocal Next NewSh.Columns("A:A").EntireColumn.AutoFit Application.ScreenUpdating = True End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.