18. december 2003 - 12:58Der er
9 kommentarer og 1 løsning
Automatisk tilpasning af rækkehøjde
I en rapport i et regneark i Excel 2000 har jeg øverst nogle talopstillinger.
Længere ned har jeg nogle kommentarer til talopstillingerne, og består af nogle flettede celler. Kommentarerne fylder fra 1-20 linier, og varierer fra regneark til regneark
Hvordan kan jeg automatisk tilpasse rækkehøjden til det skrevne? Jeg ser kun første linie. Jeg har forsøgt med justering såvel lodret og vandret i tekstjustering i format celler, men det virker ikke.
Dobbeltklik mellem tallene på Y-aksen virker heller ikke.
Jeg tror problemet skyldes de flettede celler. Hvis jeg fletter et par celler, justerer den ikke rækkehøjden, hvis der ombrydes. Er den samme tekst derimod skrevet i én celle, justeres rækkehøjden automatisk til indholdet.
Den er ikke længere end at Excel ikke kan finde ud af det selv, når der er tale om flettede celler. Dog er det sådan, at det kan løses med en makro der løber f.eks. et område igennem og laver nummeret for dig.
Jeg har lavet den før, og kan vel finde den....! Jeg vil kigge på det senere i aften, når jeg kommer hjem.
Denne her virker vist kun en merged celle - men der kan leges - prøv
Public Sub AutoFitMergedCellRowHeight() Dim iCurrentRowHeight As Single Dim iMergedCellRgWidth As Single Dim iActiveCellWidth As Single Dim iPossNewRowHeight As Single Dim rCurCell As Range
If ActiveCell.MergeCells Then With ActiveCell.MergeArea If .Rows.Count = 1 And .WrapText = True Then Application.ScreenUpdating = False iCurrentRowHeight = .RowHeight iActiveCellWidth = ActiveCell.ColumnWidth For Each rCurCell In Selection iMergedCellRgWidth = rCurCell.ColumnWidth + iMergedCellRgWidth Next .MergeCells = False .Cells(1).ColumnWidth = iMergedCellRgWidth .EntireRow.AutoFit iPossNewRowHeight = .RowHeight .Cells(1).ColumnWidth = iActiveCellWidth .MergeCells = True .RowHeight = IIf(iCurrentRowHeight > iPossNewRowHeight, _ iCurrentRowHeight, iPossNewRowHeight) End If End With End If
Det ser ud til at virke, når jeg skal forøge rækkehøjden. Jeg kan dog ikke få makroen til at virke, når jeg skal formindske fra fx 3 i højden til 2 i højden. Kan dette løses? Jeg kan ikke selv gennemskue ovennævnte kode.
Public Sub AutoFitMergedCellRowHeight() Dim iCurrentRowHeight As Single Dim iMergedCellRgWidth As Single Dim iActiveCellWidth As Single Dim iPossNewRowHeight As Single Dim rCurCell As Range
If ActiveCell.MergeCells Then With ActiveCell.MergeArea If .Rows.Count = 1 And .WrapText = True Then Application.ScreenUpdating = False .EntireRow.AutoFit iCurrentRowHeight = .RowHeight iActiveCellWidth = ActiveCell.ColumnWidth For Each rCurCell In Selection iMergedCellRgWidth = rCurCell.ColumnWidth + iMergedCellRgWidth Next .MergeCells = False .Cells(1).ColumnWidth = iMergedCellRgWidth .EntireRow.AutoFit iPossNewRowHeight = .RowHeight .Cells(1).ColumnWidth = iActiveCellWidth .MergeCells = True .RowHeight = IIf(iCurrentRowHeight > iPossNewRowHeight, _ iCurrentRowHeight, iPossNewRowHeight) End If End With End If
Set rCurCell = Nothing End Sub
Der er et problem i Excel med autohøjden af en række..... hvis sidste linie i en celle går næsten til kanten af cellen, så kan Excel finde på at lave højden en række for høj, og det kan jeg ikke komme omkring ved.
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.