Xóa dữ liệu tương ứng với ngày

Liên hệ QC

trantuonganh2008

Thành viên thường trực
Tham gia
8/11/08
Bài viết
305
Được thích
53
Hi các bạn, Mình có một workbook có khoảng 30 sheet, tại dòng ở cột A là các ngày trong tháng. Bây giờ mình muốn xóa dữ liệu từ cột B trở đi ở tất cả các sheet khi ở cột A có dữ liệu là bất kỳ ngày nào trong tháng. Xin lưu ý là dữ liệu ở các sheet có số cột hoàn toàn khác nhau. VD: mình muốn xóa dl ở sheet 1 từ tới [E], sheet 2 từ tới [F], sheet 3 từ tới [D]...Dữ liệu chỉ là số. Một ý nữa là các bạn duyệt qua các cột từ cột B trở đi, khi gặp cột có chứa công thức thì dừng lại không duyệt nữa - có nghĩa là xóa dữ liệu từ cột B cho tới khi nào gặp [G] thì dừng lại nếu như dòng ở [G] chứa công thức. Các bạn xem file đính kèm nhé. Cám ơn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Cho mình thêm ý nữa là, mình muốn xóa dữ liệu của ngày hôm trước và ngày hiện tại. Vd: hôm nay là 13, mình muốn xóa ngày 12 & ngày 13.
 
Lần chỉnh sửa cuối:
Macro của bạn đây

Hướng dẫn sử dụng:

Bước đầu, macro iêu cầu bạn nhập ngày cần xóa dữ liệu; Khi đó bạn cần nhập ngày sau của 2 ngày cần xóa DL (VD: Cần xóa các ngày 12 & 13/08/2009, thì nhập vô đó 8/13/2009

PHP:
Option Explicit
Sub DeleteRows()
 Dim Sh As Worksheet, Rng As Range, sRng As Range, rRng As Range, Clls As Range
 Dim DFormat As String:                      Dim Jj As Integer
 Dim Dat As Date
 
 Dat = InputBox("Hay Nhap Ngay Can Xoa:", , "M/D/YYYY")
 
 For Each Sh In ThisWorkbook.Worksheets
   Set Rng = Sh.Range(Sh.[A1].End(xlDown), Sh.[A65500].End(xlUp))
   DFormat = Rng.NumberFormat:               Rng.NumberFormat = "M/D/YYYY"
   For Jj = 1 To 0 Step -1
      Set sRng = Rng.Find(Format(Dat - Jj, "M/D/YYYY"), , xlFormulas, xlWhole)
      If Not sRng Is Nothing Then
         Set rRng = Sh.Range(sRng.Offset(, 1), Sh.Cells(sRng.Row, "IV"))
         For Each Clls In rRng
            If Not Clls.HasFormula Then
               Clls.Value = ""
            Else
               Exit For
            End If
         Next Clls
      End If
   Next Jj
   Rng.NumberFormat = DFormat
 Next Sh
End Sub
 
Code chạy rất tốt, cám ơn bạn nhiều!!! Thân.
 
Lần chỉnh sửa cuối:
Hướng dẫn sử dụng:

Bước đầu, macro iêu cầu bạn nhập ngày cần xóa dữ liệu; Khi đó bạn cần nhập ngày sau của 2 ngày cần xóa DL (VD: Cần xóa các ngày 12 & 13/08/2009, thì nhập vô đó 8/13/2009

PHP:
....
 Dat = InputBox("Hay Nhap Ngay Can Xoa:", , "M/D/YYYY")
....
Thông thường, với nhập liệu ngày tháng mà ta chưa chắc nó sẽ ứng với hệ thống thuộc định dạng nào thì chắc ăn nhất nên nhập theo kiểu yyyy/mm/dd ---> Bảo đảm không bao giờ sai!
 
Web KT

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

Back
Top Bottom