Xóa dòng có điều kiện

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 all, Nhờ các anh chị giúp mình viết đoạn code xóa những dòng trống và những dòng có ký tự "*", "**", "***". Cám ơn nhiều!
 
Lần chỉnh sửa cuối:
Hi all,
Nhờ các anh chị giúp mình viết đoạn code xóa những dòng trống và những dòng có ký tự "*", "**", "***".
Cám ơn nhiều!
Cực nhanh là dùng AutoFilter bạn à!
Đưa file lên tôi làm cho (nếu bạn chưa biết AutoFilter)
Viết nó thành code, đơn giản là Record macro quá trình bạn vừa làm
 
Hi ndu96081631, Cám ơn bạn, nhưng range ở đây không phải là cố định và những dòng trống cũng như các dấu "*,**,***,****" cũng không cố định luôn. Chắc phải dùng vòng lặp quét thôi. Nhờ bạn xóa từ dòng 1 --> dòng 5 luôn vì những dòng này là cố định. Cám ơn nhiều nhe!!!
 

File đính kèm

  • C.xls
    5.8 KB · Đọc: 31
Lần chỉnh sửa cuối:
Hi ndu96081631,
Cám ơn bạn, nhưng range ở đây không phải là cố định và những dòng trống cũng như các dấu "*,**,***,****" cũng không cố định luôn. Chắc phải dùng vòng lặp quét thôi. Nhờ bạn xóa từ dòng 1 --> dòng 5 luôn vì những dòng này là cố định.

Cám ơn nhiều nhe!!!
Dùng AutoFiter trong VBA nè bạn
PHP:
Sub DelRow()
    ActiveSheet.Range("$B$5:$J$200").AutoFilter Field:=1, Criteria1:="=*"
    Range("$B$5:$J$200").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ActiveSheet.Range("$B$5:$J$200").AutoFilter Field:=2, Criteria1:=""
    Range("$B$5:$J$200").SpecialCells(xlCellTypeVisible).EntireRow.Delete
End Sub
 
Dùng AutoFiter trong VBA nè bạn
PHP:
Sub DelRow()
    ActiveSheet.Range("$B$5:$J$200").AutoFilter Field:=1, Criteria1:="=*"
    Range("$B$5:$J$200").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ActiveSheet.Range("$B$5:$J$200").AutoFilter Field:=2, Criteria1:=""
    Range("$B$5:$J$200").SpecialCells(xlCellTypeVisible).EntireRow.Delete
End Sub
Thế thì "bay" mất tiêu đề của người ta rồi còn gì ---> Phải Offset(1) để xuống 1 dòng trước rồi mới Del chứ
PHP:
Sub Test()
  With Range("B5:J1000")
    .AutoFilter 1, "***"
    .Offset(1).SpecialCells(12).EntireRow.Delete
    .AutoFilter: .AutoFilter 2, "="
    .Offset(1).SpecialCells(12).EntireRow.Delete
    .AutoFilter
  End With
End Sub
 
Cám ơn 2 bạn vì đã nhiệt tình chỉ mình. Cả 2 cách viết đều đúng theo yêu cầu của mình. Cho mình hỏi thêm, bây giờ mình muốn copy range này (từ dòng C5 đền J44 vào sheet khác thì làm thế nào. Vì đây là dữ liệu mình lấy từ chương trình SAP của công ty. Mình muốn copy qua sheet khác nằm ở workbook khác bắt đầu ở activecell chỉ định ban đầu thì làm thế nào. VD: Ở workbook khác con trỏ đang nằm ở A20 thì viết code copy dữ liệu cho sheet này sẽ như thế nào. Nhờ các bạn giúp mình nhé. Cám ơn nhiều!!! ----------------------------------------------------- Bài này sẽ bị xóa vì lạc đề. Topic này hỏi chuyện "Xóa dòng có điều kiện" chứ đâu có nói đến vấn đề bạn mới hỏi. Bạn không nên "nhân tiện" như thế này, vì sẽ rất khó khăn cho chính bạn khi bạn muốn tìm lại vấn đề bạn đã hỏi vào một lúc nào đó mai sau này... Bạn hãy mở một topic mới, có tiêu đề mới, mô tả sơ lược cái nội dung bạn muốn hỏi. Nhé.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom