Hướng Dẫn Xóa Sheet Trong Excel Bằng Macro – Chi Tiết và Dễ Hiểu

Cả nhà cho mình hỏi một chút kinh nghiệm như sau nhé:

Hiện tại, file Excel của mình có rất nhiều sheet nặng. Vì thế, mình muốn tạo ra một sheet riêng rồi tạo macro để khi ấn vào, nó sẽ xóa các sheet mình đã chọn (mình có các sheet 1.11, 1.12, 1.13, 2.11, 2.12, 2.13, v.v.). Mình muốn khi ấn vào, nó sẽ xóa các sheet mà tên sheet bắt đầu bằng "1." hoặc "2.".

Rất mong anh chị em giúp đỡ nhé.

Sheet nào bắt đầu là số thì xóa:

Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
If IsNumeric(Left(sh.Name, 1)) Then
sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub

Hoặc có thể đưa tên sheet cần xoá vào InputBox để tiện lựa chọn.

Sub DelWs()
Application.DisplayAlerts = False
Dim Ws As Worksheet, WsName
WsName = Application.InputBox("Nhap ten sheet:")
For Each Ws In ThisWorkbook.Worksheets
If UCase(Ws.Name) Like UCase(WsName & "*") And Ws.Name <> "Sheet1" Then
Ws.Delete
End If
Next Ws
Application.DisplayAlerts = True
End Sub

Sheet nào có tên bắt đầu là số thì nó xóa:

Sub xoasheet()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
If Left(sh.Name, 1) = 1 Or Left(sh.Name, 1) = 2 Then
sh.Delete
End If
Next
Application.DisplayAlerts = True
End Sub

Nếu có 100 dk thì code 100 dòng mỏi tay luôn

For Each sh In Worksheets
If Left(sh.Name, 2) = "A1" Then sh.Delete
If Left(sh.Name, 2) = "A2" Then sh.Delete
If Left(sh.Name, 2) = "A3" Then sh.Delete
Next

Có thể tham khảo:

dim sh as variant, dauTien as boolean
dauTien = True
For Each sh in WorkSheets
If sh.Name Like "A[123]*" Then
  sh.Select dauTien
  dauTien = False
End If
Next sh
ActiveWindow.SelectedSheets.Delete
Xây dựng Lương 3P, KPI cho Doanh nghiệp
Khóa học SprinGO phù hợp

Xây dựng Lương 3P, KPI cho Doanh nghiệp

Làm thế nào để trả lương cho nhân viên chính xác nhất? Đây là một trong những câu hỏi khó trong quản trị nhân...

Xem khóa học
Chia sẻ: