VBA til automatisk rækkehøjde i excel
Hej Alle.Jeg ved dette spørgsmål har været slået op på siden før, og jeg har forsøgt at bruge de løsninger som er kommet, men det virker ikke helt for mig.
Jeg er en rutineret excel-bruger, men er ikke ret meget bekendt med makroer osv.
Jeg har fået en VBA-kode ind i mit excel-ark, men den virker kun på den ene celle som er markeret i arket, og den kan ikke reducere rækkehøjden, kun forøge rækkehøjden:
Sub automatisk_rækkehøjde()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
CurrentRowHeight, PossNewRowHeight)
End If
End With
End If
End Sub
Jeg har brug for at den også kan reducere rækkehøjden, samt at jeg kan definere i koden at den kun skal gøre det for udvalgte områder i arket, fx (B37:L44) og (B100:L240).
Jeg har også brug for at kunne definere rækkehøjderne ud fra hvor mange linjer med tekst der er i en række, sådan at fx 1 linje med tekst skal have en rækkehøjde på 24,75 og 2 linjer med tekst skal have en rækkehøjde på 36,75 osv.
Endelig skal VBA-koden ignorere rækker som ikke er vist på arket, fordi de er skjult af filter-funktionen i excel.
Håber meget der er en excel brain som kan hjælpe...