ngodany135
Thành viên thường trực




- Tham gia
- 1/12/10
- Bài viết
- 346
- Được thích
- 522
- Nghề nghiệp
- GIÁO VIÊN
Cho em hỏi VBA có thể làm được vấn đề này không ạh. File đính kèm. Chân thành cảm ơn các sư phụ trước.

Cần gì phải VBA, AutoFilter cột C theo điều kiện "N" rồi xóa thôiCho em hỏi VBA có thể làm được vấn đề này không ạh. File đính kèm. Chân thành cảm ơn các sư phụ trước.![]()
Lọc nó rồi chọn Chữ "N" rồi xóa chứ gì đâu tại trong file bạn đưa lên không có dòng tiêu đề nên khi lộc không thấy chữ N đặt tên dòng tiêu để là ok, Nếu muốn code thì dùng vòng lập duyệt qua Côt C ô nào có chữ N thì xóa dòng đó vậyLà sao hé thầy, thầy hướng dẫn dùm em.
Lọc nó rồi chọn Chữ "N" rồi xóa chứ gì đâu tại trong file bạn đưa lên không có dòng tiêu đề nên khi lộc không thấy chữ N đặt tên dòng tiêu để là ok, Nếu muốn code thì dùng vòng lập duyệt qua Côt C ô nào có chữ N thì xóa dòng đó vậy
Ý mình là như vầy nha các bạn.
2 cách dùng Filter và code nè.Ah. Bạn dùng code cho mình xem nha bạn nmhung49.
Sub xoan()
Dim li As Long, clls As Range
For Each clls In [c7:c9]
If clls.Text = "N" Then Rows(clls.Row).EntireRow.Delete
Next
End Sub
Sub xoafilter()
Application.DisplayAlerts = False
With [b7].CurrentRegion
.AutoFilter
.AutoFilter 2, "N"
.Offset(1).Resize().Delete
.AutoFilter
End With
Application.DisplayAlerts = True
End Sub
Vậy cho mình hỏi xoá dữ liệu trong ô hay là xoá nguyên ô đó luôn vậyCảm ơn thầy nhiều, Dạ cho em hỏi thêm. Tại cột C có 2 lựa chọn (X,N). Ví dụ như khi chọn N (C7) thì xoá 1 ô B7. Tương tự vậy khi chọn các ô khác cũng thế.
Hình như em đặt tiêu đề bị sai, xoá ô chứ không phải xoá dòng
Mình gửi bạn code xoá bằng vòng lập và dùng code autofilter để xoá bạn thích cái nào dùng cái đó
]PHP:Sub xoan() Dim li As Long, clls As Range For Each clls In [c7:c9] If clls.Text = "N" Then Rows(clls.Row).EntireRow.Delete Next End Sub
Vậy bạn đặt sự kiện này vô sheet1 là đượcLúc đầu em hỏi không rõ ràng. Thông cảm nha. Xoá dữ liệu ô đó thôi bạn. Cảm ơn các bạn nhiều
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Range("c7:C9"), Target).Value = "N" Then Target.Offset(, -1).ClearContents
End Sub
Mấy cái code Worksheet_Change xem bộ hơi nguy hiểm ---> Lỡ chọn nhầm 1 cái là nó xóa mất tiêu (chẳng biết lúc nãy là tên gì nữa)Vậy bạn đặt sự kiện này vô sheet1 là được
PHP:Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Intersect(Range("c7:C9"), Target).Value = "N" Then Target.Offset(, -1).ClearContents End Sub
Mấy cái code Worksheet_Change xem bộ hơi nguy hiểm ---> Lỡ chọn nhầm 1 cái là nó xóa mất tiêu (chẳng biết lúc nãy là tên gì nữa)
Theo tôi thì cứ nhập liệu bình thường, đến cuối cùng ta AutoFilter bằng tay, hoặc dùng code xóa 1 lần sẽ tiện hơn
Tôi thấy nó đâu có gì phức tạp chứĐúng là nguy hiểm thật. Các bác giúp dùm. Cảm ơn trước nha
Đa Ny sửa code trong file trên (Bài #7) của tôi thành như vầy xem có được không. Xóa luôn Chữ N trong cột C luôn đi, để chữ N lại coi không đẹp.Đúng là nguy hiểm thật. Các bác giúp dùm. Cảm ơn trước nha
Private Sub CommandButton1_Click()
Dim nN As Double, Ii As Double
nN = Range("B100").End(xlUp).Row
For Ii = nN To 7 Step -1
If Range("C" & Ii).Value = "N" Then
Range("B" & Ii & ":C" & Ii).ClearContents
End If
Next
End Sub