How to delete rows above active cell or specific text in Excel?
If there is a huge worksheet with multiple rows, and you just want to delete all rows above the active cell or a specific text, how can you handle it? You can delete the rows by selecting them and then right click to choose Delete from the context menu manually. But here, I have VBA codesto quickly delete rows above, if you are interested in it, please read the below detail.
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
Here I introduce two VBA codes for you, one is delete rows above the active (selected cell), another one is remove the rows above the specified text.
1. Select a cell which you want to delete rows above it, and press Alt + F11 keys to open Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste below code to the Module script.
VBA: Delete rows above active cell
Sub DeleteRowsAboveActive() Range("A1:A" & ActiveCell.Row - 1).EntireRow.Delete End Sub
3. Press F5 key, then the rows above active cell have been removed. See screenshot:
If you want to delete rows above the specified text, you can use below VBA.
VBA: Delete rows above the specified text
Sub DeleteRowsABove() 'UpdatebyExtendoffice20161109 Dim fRg As Range Set fRg = Cells.Find(What:="Total Group", LookAt:=xlWhole) If Not fRg Is Nothing Then If fRg.Row <> 1 Then Range("A1", fRg.Offset(-1)).EntireRow.Delete Else MsgBox "Total Group is in the first row already", vbInformation, "Kutools for Excel" End If Else MsgBox "Do not find Total Group", vbInformation, "Kutools for Excel" End If End Sub
1. In the code, Total Group is the text you want to find, you can change it as you need.
2. If the text you find has been in the first row already, a dialog will pop out to remind you.
3. If the text you find does not exist in the sheet, a dialog as below screenshot shown will pop out to remind you.