![]() |
how to clear cells quick?
I have a macro which will clear a whole bunch of cells from a whole bunch of
sheets. It takes forever. I do not know if there is a better/faster way to do this. One idea of mine is to select muliple cells and then clear the selected cells instead of one by one. There might be a better way. Any suggestions? Sub Clear_The_Month() ' Clear_The_Month Macro ' Macro recorHeH 9/14/2006 by Rapture Marketing ' ' Dim c As Integer Dim r As Integer Dim sr As Integer Dim s As Integer Dim lw As Integer Application.ScreenUpdating = False lw = 16 For s = 5 To 36 If s = 31 Then lw = 9 If Sheets(s).Name < "salaries" And Sheets(s).Name < "salaries 2" Then For c = 4 To lw Step 2 For r = 2 To 74 Step 6 For sr = 1 To 4 If Not IsEmpty(Worksheets(s).Cells((sr + r), c)) Then Worksheets(s).Cells((sr + r), c).ClearContents Next sr Next r Next c For c = 4 To lw Step 2 For r = 83 To 87 Step 2 If Not IsEmpty(Worksheets(s).Cells(r, c)) Then Worksheets(s).Cells(r, c).ClearContents Next r Next c For c = 4 To lw Step 2 For r = 95 To 193 Step 2 If Not IsEmpty(Worksheets(s).Cells(r, c)) Then Worksheets(s).Cells(r, c).ClearContents Next r Next c End If Next s End Sub Thanks |
how to clear cells quick?
If the cells you want to clear are always the same you may consider using
Application.union For example: dim ClearRange as range set ClearRange = application.union(range("A1"),range("F6")) ClearRange.clearcontents 'continue setting ClearRange for each set of cells you want to clear. You shouldn't have to test if the cell is empty since you are going to clear it anyway. -- JNW "Jared" wrote: I have a macro which will clear a whole bunch of cells from a whole bunch of sheets. It takes forever. I do not know if there is a better/faster way to do this. One idea of mine is to select muliple cells and then clear the selected cells instead of one by one. There might be a better way. Any suggestions? Sub Clear_The_Month() ' Clear_The_Month Macro ' Macro recorHeH 9/14/2006 by Rapture Marketing ' ' Dim c As Integer Dim r As Integer Dim sr As Integer Dim s As Integer Dim lw As Integer Application.ScreenUpdating = False lw = 16 For s = 5 To 36 If s = 31 Then lw = 9 If Sheets(s).Name < "salaries" And Sheets(s).Name < "salaries 2" Then For c = 4 To lw Step 2 For r = 2 To 74 Step 6 For sr = 1 To 4 If Not IsEmpty(Worksheets(s).Cells((sr + r), c)) Then Worksheets(s).Cells((sr + r), c).ClearContents Next sr Next r Next c For c = 4 To lw Step 2 For r = 83 To 87 Step 2 If Not IsEmpty(Worksheets(s).Cells(r, c)) Then Worksheets(s).Cells(r, c).ClearContents Next r Next c For c = 4 To lw Step 2 For r = 95 To 193 Step 2 If Not IsEmpty(Worksheets(s).Cells(r, c)) Then Worksheets(s).Cells(r, c).ClearContents Next r Next c End If Next s End Sub Thanks |
All times are GMT +1. The time now is 11:52 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com