View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Greg Wilson[_4_] Greg Wilson[_4_] is offline
external usenet poster
 
Posts: 218
Default Row Height for merged cells

You're quite insightful. The approach you describe was
developed by Jim Rech some time back and as far as I know
is the method of choice. I wrote a variation of Jim's code
as shown below. If you decide to use it, change the cell
references to suit. Note that the Wraptext property of the
merged ranges must be set to True. The code assumes that
the merged cells are within the range A1:C10 with only the
columns merged (i.e. A1:C1, A2:C2, A3:C3 etc. merged).

Paste to the worksheet code module.

Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Dim RowHt As Single, MergeWidth As Single
Dim C As Range, AutoFitRng As Range
Dim CWidth As Single, NewRowHt As Single
Static OldRng As Range

On Error Resume Next
If Target.Count 3 Then Exit Sub 'Change to suit
If OldRng Is Nothing Then _
Set OldRng = Range("A1").MergeArea
Set AutoFitRng = Range("A1:C10")
If Not Intersect(OldRng, AutoFitRng) Is Nothing Then
Application.ScreenUpdating = False
With OldRng
RowHt = .RowHeight
CWidth = .Cells(1).ColumnWidth
For Each C In OldRng
MergeWidth = C.ColumnWidth + MergeWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergeWidth
.EntireRow.AutoFit
NewRowHt = .RowHeight
.Cells(1).ColumnWidth = CWidth
.MergeCells = True
.RowHeight = NewRowHt
End With
Application.ScreenUpdating = True
End If
Set OldRng = Target
End Sub

Regards,
Greg


-----Original Message-----
I want to set the row height for a row containing merged

cells with long text that wraps.

Autoheight doesn't work.

The only way I can think to do it is to demerge the

cells, select the range, format for centre across
selection, autofit. At this point I would note the row
height and then merge the cells and set the height to that
noted.

I need the cells merged to use justified alignment.

If you can think of a better way I would appreciate.

Kaval
.