On Fri, 7 Dec 2007 02:28:02 -0800, Arne Hegefors
<(E-Mail Removed)> wrote:
>Hi! I have long lists of dates that I often have to clean by deleting all
>dates that are weekend dates. I am trying to write a sub that does this for
>me (i know how to do it in a worksheet but it takes too long time since i
>have very many books..). I tried selction the dates that I want to clean and
>then running the macro but that obviously does not work. Is it posiible to do
>this in any way? any help appreciated!
>
>Sub deleteWeekEnds()
> Dim i As Integer
> i = Weekday(Selection, vbMonday)
> If i = 6 Or i = 7 Then
> Selection.Row.Delete
> End If
>End Sub
What you need to do is select the bottom row in your range, and then step
upwards, testing and deleting as you go.
I'm not sure what the most efficient way in your worksheet is to select the
bottom row, so I just used column A, but you can change this in many ways.
Here's an example:
=======================================
Option Explicit
Sub DelWeekends()
Dim LastRow As Range, c As Range
Dim i As Long
'you should change this to reflect the appropriate column
Set LastRow = Range("a65535").End(xlUp)
For i = LastRow.Row To 1 Step -1
Set c = Cells(i, 1)
If IsDate(c) Then
If Weekday(c) = vbSaturday Or Weekday(c) = vbSunday Then
c.EntireRow.Delete
End If
End If
Next i
End Sub
====================================
--ron
|