To post as a guest, your comment is unpublished.· 6 months agoAnkur,
As you said, you just need to change the "=" to " <>" as below code:
Dim shName As String
Dim xName As String
Dim xWs As Worksheet
Dim cnt As Integer
shName = Application.InputBox("Input the text not delete the sheets based on:", "Kutools for Excel", _
"", , , , , 2)
Application.DisplayAlerts = False
cnt = 0
For Each xWs In ThisWorkbook.Sheets
If xWs.Range("A1").Value <> shName Then
cnt = cnt + 1
Application.DisplayAlerts = True
MsgBox "Have deleted" & cnt & "worksheets", vbInformation, "Kutools for Excel"
Please try, hope it can help you！
How to delete worksheet based on cell value in Excel?
Supposing, I have multiple worksheets within a workbook, now, I want to delete the sheets based on cell value. For example , if the specific cell A1 contains the text “KTE”, all of the sheets which cell A1 has this text are needed to be deleted at once. This article may help you to deal with this task in Excel.
- 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 will introduce a code for you to delete all sheets which the specific cell has a certain value, please do as follows:
1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Delete worksheet based on cell value:
Sub deletesheetbycell() 'Updateby Extendoffice 20161008 Dim shName As String Dim xName As String Dim xWs As Worksheet Dim cnt As Integer shName = Application.InputBox("Input the text to delete the sheets based on:", "Kutools for Excel", _ "", , , , , 2) Application.DisplayAlerts = False cnt = 0 For Each xWs In ThisWorkbook.Sheets If xWs.Range("A1").Value = shName Then xWs.delete cnt = cnt + 1 End If Next xWs Application.DisplayAlerts = True MsgBox "Have deleted" & cnt & "worksheets", vbInformation, "Kutools for Excel" End Sub
Note: In the above code, A1 is the specific cell which contains certain text that you want to delete the sheets based on.
3. Then press F5 key to run this code, and a prompt box is popped out to remind you to input the specific value that you want to delete the sheets based on, see screenshot:
4. And then click OK button, all the sheets which cell A1 has the text KTE have been deleted at once. See screenshot:
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
To post as a guest, your comment is unpublished.· 7 months agoquick question, the above code works for me for deleting worksheets which contain the value which is entered, but what if i want to delete worksheets which do not contain value entered. I tried replacing the "=" operator with the <>" operator, but it does not work. Thanks!