View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Norman Jones Norman Jones is offline
external usenet poster
 
Posts: 5,302
Default VB Code Highlight Rows Based on Color Index

Hi Jay,

The methods for resetting the UsedRange may be version
dependent.

If you perform a Google search of the NG archives, you will
find considerable previous discussion.

Perhaps, however, try:

'=============
Public Sub Tester()
Dim SH As Worksheet
Dim Rng As Range

Set SH = ActiveSheet

With SH
Set Rng = .Cells(Rows.Count, Columns.Count)

With Rng
.NumberFormat = "dd\mm\yy"
.Clear
End With

MsgBox .UsedRange.Address(0, 0)
End With
End Sub
'<<=============

As previously indicated, I believe that there may be more
reliable ways of establishing the data range than the potentially
problematic UsedRange property.


---
Regards,
Norman


"Jay" wrote in message
...
Hi Norman -

Programmatically referencing the UsedRange appears to automatically
disregard the "high-water mark" left by cleared cells that are located
beyond
the data range. The VB UsedRange property returns the 'data-only'
UsedRange
even when the UI does not, i.e., when Ctrl-End senses an empty high water
mark.

In fact, try this out as a one-line alternative to Debra's DeleteUnused
procedure to reset the UsedRange after clearing cells to the right and
below
a data range:

Activesheet.UsedRange.Select

Once this statement executes, the UsedRange is reset (check it in the UI
with Ctrl-End). One advantage of this approach is that it's
non-destructive;
formulas in the data range that reference rows outside the data range are
not
converted to "#Ref!"

I haven't been able to make this statement fail (yet) to reset the
UsedRange
or fail to directly return the correct data range. I have a theory that
perceived unpredictability may be an artifact of the sensitivity of the UI
to
the high water mark; the VB UsedRange property appears to disregard it.

---
Excel2003/WinXP
Jay