Delete Rows And Columns
It is frequently necessary to delete rows and columns in a worksheet. Rows use numeric designations which lend themselves to computational solutions for choosing the row numbers to be deleted. Columns, however, use an Alpha designation for some of the commands, so this example shows how to delete columns using numeric identification.
The program code below shows multiple ways to delete the same rows and columns.
Program Code
Option Explicit Public Sub DeleteRowsAndColumns() Dim lngStartingRow As Long Dim lngEndingRow As Long Dim lngStartingColumn As Long Dim lngEndingColumn As Long lngStartingRow = 6 lngEndingRow = 9 lngStartingColumn = 10 lngEndingColumn = 16 ' ***************************************************** ' Delete Columns 10 - 16 By Using Alpha Designation ' ***************************************************** Columns("J:P").Delete ' ***************************************************** ' Delete The Same Columns Using Numeric Designations ' ***************************************************** Range(Cells(1, 10), Cells(1, 16)).EntireColumn.Delete ' ***************************************************** ' Delete The Same Columns Using Numeric Variables ' ***************************************************** Range(Cells(1, lngStartingColumn), Cells(1, lngEndingColumn)).EntireColumn.Delete ' ***************************************************** ' Delete Rows 6 - 9 Using Numeric Designations ' ***************************************************** Rows("6:9").Delete ' ***************************************************** ' Delete The Same Rows Using Numeric Variables ' ***************************************************** Rows(lngStartingRow & ":" & lngEndingRow).Delete ' ***************************************************** ' Delete A Single Row ' ***************************************************** Rows(1000).EntireRow.Delete End Sub
Program Code To Delete All Rows Past Last Data Row
Option Explicit ' **************************************************************** ' Reset Row Range To Actual Data ' Delete All Rows Past Last Data Row ' **************************************************************** Public Sub SetActualRange() Dim lngLastDataRow As Long Dim lngLastExcelRow As Long Dim rngRangeToDelete As Range lngLastDataRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row lngLastExcelRow = ActiveSheet.Cells(Rows.Count, "A").Row ' ********************************************************************************** ' The Following Line Can Be Used to Replace The Last Two Lines of Code ' ********************************************************************************** ' Range(Cells(lngLastDataRow + 1, 1), Cells(lngLastExcelRow, 5)).EntireRow.Delete ' ********************************************************************************** Set rngRangeToDelete = Range(Cells(lngLastDataRow + 1, 1), Cells(lngLastExcelRow, 5)).EntireRow rngRangeToDelete.Delete End Sub ' ********************************************************************************** ' Or You Can Use This Method To Delete Both Columns and Rows ' ********************************************************************************** Sub AlternativeMethodToDelete() Dim LastRow As Long LastRow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 1 '~~> Delete Extra Rows Sheets("Sheet1").Rows(LastRow & ":" & Rows.Count).Delete '~~> Delete Extra Columns just to be safe Sheets("Sheet1").Columns("F:" & Split(Cells(, Columns.Count).Address, "$")(1)).Delete End Sub