Do số lượng file có cùng cấu trúc có lên đến hàng 100 file nên làm thủ công từng file rất lâu, nên mình muốn không mở file mà có thể xóa đồng loạt ở các file ý
[Sub DELETE_Sh_In_FILES()
Dim wb As Workbook
Dim sh As Worksheet, ws As Worksheet
Dim sPat As String, swb As String
Dim lr&
Application.DisplayAlerts = False
Set sh = Sheets("THU NGHIEM")
sPat = sh.[J1]
If sh.[B3] = Empty And Application.CountIf(sh.Range("J2:J11000"), "<>") = 0 Then Exit Sub
If sh.[B3] = Empty And Application.CountIf(sh.Range("J2:J1000"), "<>") <> 0 Then
Dim ThongBao&
ThongBao = MsgBox(" Ban có muôn xóa các file trong dai ô J2:J... cua sheet này không?", vbYesNo, "Thông báo")
If ThongBao = 6 Then
For i = 2 To sh.[J100].End(3).Row
swb = sh.Range("J" & i) & ".xlsx"
Set wb = Workbooks.Open(sPat & swb)
For Each ws In wb.Worksheets
If ws.Name <> "KeKhaiDangKy" Then
ws.DELETE
End If
'==========================Doan này xóa các dòng cân xóa n?u mu?n xóa thì b? các d?u ' ? ??u dong
' If ws.Name = "KeKhaDangKy" Then
' Range("9:9,7:7").Select ' Dua các dòng vao danh sách xóa
' Selection.DELETE Shift:=xlUp
' End If
Next ws
wb.Close False
Next i
End If
End If
Application.DisplayAlerts = False
MsgBox " DÃ XÓA XONG"
End Sub]
Mình thử ở máy mình thì chạy rồi. bạn muốn thử thì nên copy 1 số file ra một bản sao nữa và chạy thử. nếu thấy ổn thì mới cho chạy bản chính. Cũng đáng thử nếu số lượng file và sh trong từng file đó nhiều.
Lưu ý :
1/ Ở Modul DELETESHEETS bạn chỉ cần nhập đường dẫn và tên file vào cột J. (đường dẫn của đến file cần xóa phải ghi đúng vào Ô J1, ô J2,J3 là tên các file ấy.)
2/ Ở Modul XOA_Sh_in_File bạn cần bôi đen các file cần xóa sh và nhấn nút open.
3/ Trong cả 2 cách: Các dòng cần xóa: bạn mở code và thay đổi (nhớ bỏ dấu " ' " ở trước các dòng code.
Hy vọng 2 cách này sẽ giúp ích được cho bạn. Chúc bạn thành công.
P/S; Code của các anh chị trên diễn đàn tôi chỉ copy về và xào xáo lại một tý cho phù hợp với nhu cầu sử dụng.