Hỏi có/không xóa các sheet đã ẩn? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

QuangMinhtb

Thành viên hoạt động
Tham gia
31/10/19
Bài viết
171
Được thích
34
Thân ái chào anh, chị cùng toàn thể các bạn trên GPE.
Tôi có biết đến code VBA dùng để xóa sheet đã ẩn
Nhờ các bạn giúp đỡ tôi sửa lại code để khi Run code thì hiện lên thông bảo hỏi (có/không xóa các sheet đã ẩn) và tương ứng với 02 tùy chọn là "có" hoặc "không". Chọn có sẽ xóa tất cả các sheet đã ẩn, chọn không thì không xóa
Các bạn giúp tôi nhé! Cảm ơn mọi người.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
   If sh.Visible <> -1 Then
      sh.Visible = -1
      sh.Delete
   End If
Next
Application.DisplayAlerts = True
End Sub
 
Thân ái chào anh, chị cùng toàn thể các bạn trên GPE.
Tôi có biết đến code VBA dùng để xóa sheet đã ẩn
Nhờ các bạn giúp đỡ tôi sửa lại code để khi Run code thì hiện lên thông bảo hỏi (có/không xóa các sheet đã ẩn) và tương ứng với 02 tùy chọn là "có" hoặc "không". Chọn có sẽ xóa tất cả các sheet đã ẩn, chọn không thì không xóa
Các bạn giúp tôi nhé! Cảm ơn mọi người.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
For Each sh In Worksheets
   If sh.Visible <> -1 Then
      sh.Visible = -1
      sh.Delete
   End If
Next
Application.DisplayAlerts = True
End Sub
Thử.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
If MsgBox("co xoa khong", vbYesNo) = vbNo Then GoTo xong
For Each sh In ThisWorkbook.Worksheets
   If Not sh.Visible = xlSheetVisible Then
      sh.Delete
   End If
Next
xong:
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Thử.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
If MsgBox("co xoa khong", vbYesNo) = vbNo Then GoTo xong
For Each sh In ThisWorkbook.Worksheets
   If Not sh.Visible = xlSheetVisible Then
      sh.Delete
   End If
Next
xong:
Application.DisplayAlerts = True
End Sub
Tuyệt quá! Chân thành cám ơn bạn!
Chúc bạn nhiều sức khỏe.
Thân ái chào bạn!
 
Upvote 0
Người có kinh nghiệm không ai làm vậy cả. Tự dưng "ừ" một cái, xoá một mớ mà mình chẳng hề nhìn thấy.
Cách làm tối thiểu:
- Gom mớ sheet đạt điều kiện lại (ở đây, điều kiện là sheet đang ẩn)
- MsgBox đưa tên mớ sheet trên và hỏi xem có muốn xoá.
- Xoá, nếu "ừ"
 
Upvote 0
Người có kinh nghiệm không ai làm vậy cả. Tự dưng "ừ" một cái, xoá một mớ mà mình chẳng hề nhìn thấy.
Cách làm tối thiểu:
- Gom mớ sheet đạt điều kiện lại (ở đây, điều kiện là sheet đang ẩn)
- MsgBox đưa tên mớ sheet trên và hỏi xem có muốn xoá.
- Xoá, nếu "ừ"
Cám ơn Anh đã góp ý.
- Gom mớ sheet đạt điều kiện lại (ở đây, điều kiện là sheet đang ẩn): thì ở đây đã gom, đó chính là các sheet đã ẩn.
- MsgBox đưa tên mớ sheet trên và hỏi xem có muốn xoá : nếu có được lựa chọn này thì tốt quá vì sẽ thấy tên sheet bị ẩn trước khi xóa.
Anh có thể giúp em ý (MsgBox đưa tên mớ sheet trên và hỏi xem có muốn xoá?) hoặc cho em hướng để có thể quản lý tốt hơn vấn đề em nêu trên.
 
Upvote 0
Thử.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
If MsgBox("co xoa khong", vbYesNo) = vbNo Then GoTo xong
For Each sh In ThisWorkbook.Worksheets
   If Not sh.Visible = xlSheetVisible Then
      sh.Delete
   End If
Next
xong:
Application.DisplayAlerts = True
End Sub
Em có dùng add in https://www.giaiphapexcel.com/diendan/threads/add-ins-cho-excel-2007-2016-32bit-và-64bit.106992/ và tùy chọn "để ẩn nhiều sheet" và sau đó xóa các sheet đã ẩn nhưng lại báo lỗi như hình dưới:
Anh giúp em:

ok.pngptr.png
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
If MsgBox("co xoa khong", vbYesNo) = vbNo Then GoTo xong
For Each sh In ThisWorkbook.Worksheets
   If Not sh.Visible = xlSheetVisible Then
      sh.Visible = xlSheetHidden
      sh.Delete
   End If
Next
xong:
Application.DisplayAlerts = True
End Sub
 
Upvote 0
Bạn thử.
Mã:
Sub DeleteHiddenSheets()
Application.DisplayAlerts = False
Dim sh As Worksheet
If MsgBox("co xoa khong", vbYesNo) = vbNo Then GoTo xong
For Each sh In ThisWorkbook.Worksheets
   If Not sh.Visible = xlSheetVisible Then
      sh.Visible = xlSheetHidden
      sh.Delete
   End If
Next
xong:
Application.DisplayAlerts = True
End Sub
Cám ơn anh!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom