Set Rng = Range("B2:B" & Cells.Rows.Count). _
SpecialCells(xlConstants, xlTextValues)
selects cells that contain hard coded entries that are text, i.e. usually
something typed in by the User that wouldn't be considered a formula.
You next loop through that range of cells containing text values looking for
an empty cell. The only cells that would meet you test would be cells that
contain only spaces or characters which would be removed by TRIM (as far as I
know, only spaces).
So your logic says look at all the non empty cells containing hard coded
values and find an empty cell.
this might be why it isn't behaving as you intended.
Sub SetHeights()
AutoCalcOff
Dim cell As Range, Rng As Range
Set Rng = Range("B2:B" & Cells.Rows.Count). _
SpecialCells(xlblanks)
For Each cell In Rng
If Len(Trim(cell.Value)) = 0 Then
cell.EntireRow.RowHeight = 6
End If
Next cell
AutoCalcOn
End Sub
would be more along the lines of what I would expect for this mission.
--
Regards,
Tom Ogilvy
"Philip J Smith" wrote:
> Hi. I hope some-one can help.
>
> I have hacked together and modified some code posted for other purposes by
> dmcritchie (1 posting) and Tom Ogilvy (2 postings). I thought that I
> understood what the code was doing, but it doesn’t seem to work – any error
> is mine, not theirs.
>
> In a column of labels with blank rows between elements I want to set the row
> height to 6 if the cell is blank, otherwise leave the row height as default.
>
> The code is given below:
>
> 'Macro to set row heights
> Sub SetHeights()
> AutoCalcOff
> Dim cell As Range, Rng As Range
> Set Rng = Range("B2:B" & Cells.Rows.Count). _
> SpecialCells(xlConstants, xlTextValues)
> For Each cell In Rng
> If Len(Trim(cell.Value)) = 0 Then
> cell.EntireRow.RowHeight = 6
> End If
> Next cell
> AutoCalcOn
> End Sub
>
> AutoCalcOff and AutocalcOn are calls to other subroutines.
>
> Regards
>
> Phil Smith
>
|