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
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