We can use VBA Delete Range to Shift Up and Shift Left the cells. Range.Delete method will Delete the selected cells or range as per the shift options. You can also delete entire rows or columns using EntireRow.Delete and EntireColumn.Delete methods of range object.
VBA to Delete Range in Excel – Syntax
Here is the syntax to Delete a range using VBA. Here, Shift will be xlToLeft or xlUp. Shift:=xlLeft will shifts the cells towards Left side after deletion of the range. And Shift:=xlUp will shifts the cells towards Upper side after deletion of the range.
Range(“YourRange”).Delete(
[Shift])The below syntax will delete the entire row of the selected range:
Range(“YourRange”).EntireRow.Delete
And the below syntax will delete the entire column of the selected range:
Range(“YourRange”).EntireColumn.Delete
VBA to Delete Range in Excel – Example:Shift:=xlToLeft
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the range and shifting the cells left side. Here we are deleting range “B2:D10”.
Sub Delete_Range_To_ShiftLeft() Range("B2:D10").Delete Shift:=xlToLeft End SubVBA to Delete Range in Excel – Example:Shift:=xlToUp
Here is the Excel VBA macro to Delete a range. In this example , we are deleting the range and shifting the cells towards up. Here we are deleting range “B2:D10”.
Sub Delete_Range_To_ShiftUp() Range("B2:D10").Delete Shift:=xlToUp End SubVBA to Delete Range in Excel – Example: EntireRow
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the entire row(s). Here we are deleting the rows of the range “B2:D10”, ie. we are deleting rows 2 to 10.
Sub Delete_Range_EntireRow() Range("B2:D10").EntireRow.Delete End SubVBA to Delete Range in Excel – Example: EntireColumn
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the entire column(s). Here we are deleting the columns of the range “B2:D10”, ie. we are deleting columns ‘B’ to ‘D’.
Sub Delete_Range_EntireColumn() Range("B2:D10").EntireColumn.Delete End SubVBA to Delete Range in Excel – Execution Instructions
You can follow the below steps to execute the macro to Delete and paste a range using VBA.
- Open an Excel Workbook from your start menu or type Excel in your run command
- Enter some data in any cells in range “B2:D10″ to test this macro.
- Press Alt+F11 to Open VBA Editor or you can go to Developer Tab from Excel Ribbon and click on the Visual Basic Command to launch the VBA Editor
- Insert a Module from Insert Menu of VBA
- Copy the above code (to cut a range using VBA) and Paste in the code window(VBA Editor)
- Save the file as Macro Enabled Workbook (i.e; .xlsm file format)
- Press ‘F5′ to run it or Keep Pressing ‘F8′ to debug the code line by line.
Now you can observe that the Range “B2:D10” is deleted and moved in the specific range.
Example 1-Range(“B2:D10”).Delete Shift:=xlToLeft: It will delete the range and shift the cells towards left.
Example 2-Range(“B2:D10”).Delete Shift:=xlToUp: It will delete the range and shift the cells towards Up.
Example 3-Range(“B2:D10”).EntireRow.Delete: It will delete the complete row(s) of selected range (Rows 2 to 10).
Example 4-Range(“B2:D10”).EntireColumn.Delete: It will delete the complete column(s) of selected range (columns B to D).
Of course, this would work better if the Excel built in variable xlShiftUp was used rather than the NON EXISTENT xlToUp