Dùng Macro xóa dòng có điều kiện

  • Thread starter Thread starter NHG
  • Ngày gửi Ngày gửi
Liên hệ QC

NHG

Thành viên hoạt động
Tham gia
15/1/07
Bài viết
148
Được thích
126
Câu hỏi của mình nằm trong File đính kèm, các bạn giúp mình với nhé, mình cám ơn nhiều. File mình dùng Font .VnTime
 

File đính kèm

Bạn tham khảo tệp đính kèm (Không biết có đúng ý bạn không)
 

File đính kèm

Upvote 0
Dear all,
--------
Các bạn cố gắng nêu vấn đề và giải quyết vấn đề được không? Ngoài việc tránh phải up và download file thì đây cũng là cách giúp ta luyện kỹ năng viết và thuyết trình.
Rất mong những ý kiến đóng góp và xây dựng của các bạn!
 
Upvote 0
Ý kiến rất đúng, tôi hoàn toàn đồng ý và hưởng ứng.
 
Upvote 0
Đào Việt Cường đã viết:
Dear all,
--------
Các bạn cố gắng nêu vấn đề và giải quyết vấn đề được không? Ngoài việc tránh phải up và download file thì đây cũng là cách giúp ta luyện kỹ năng viết và thuyết trình.
Rất mong những ý kiến đóng góp và xây dựng của các bạn!

Theo mình thì nên kết hợp cả 2 cách: Nêu (thuyết trình) vấn đề cần giải quyết lên diễn đàn đồng thời gửi file viện dẫn cụ thể (trong file có mô tả chi tiết nội dung cần nhờ các thành viên trên GPE giúp đỡ). Như vậy việc truyền đạt thông tin từ người đặt vấn đề đến người tham gia giải quyết vấn đề sẽ giảm thiểu việc hiểu sai ý, giúp cho vấn đề giải quyết nhanh chóng - tiết kiệm thời gian hơn cho cả 2 bên.
Nên lưu ý, nén files trước khi upload để tiết kiệm tài nguyên cho diễn đàn và cho chính mình.

Thân ái !
 
Upvote 0
Đào Việt Cường đã viết:
Dear all,. . .
Rất mong những ý kiến đóng góp và xây dựng của các bạn!
(hắc Cường còn í này nữa:
Khi mình nhờ người khác giúp thì mình phải tạo đủ điều kiện để người nào đó giúp mình; (Trong trường hợp này sẽ có một bộ fận thành viên không đọc được bài của bạn vì nó hiện lên tiếng 'Lào' - Thay vì bạn phải dùng UniCode trong các Sheets thân thw của bạn!) Tại sao mình nói vậy: Vì DĐàn chúng ta ngầm định UniCode được ưu tiên Số Một!
/)/gược với thứ mà bạn nuốn tặng cho DĐàn thì mọi người có nhu cầu phải trang bị font đễ đọc - nếu muốn;
(/ài lời cùng bạn!
/(/ói ít dễ hiểu hơn nói nhiều!
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn chibi rất nhiều, cách làm của bạn rất đúng ý mình. Cảm ơn mọi người đã góp ý, lần sau mình sẽ rút kinh nghiệm. Nhân tiện đây chibi và các bạn cho mình hỏi với. Giả sử cột A1:A12000 của mình có các giá trị sau:
a
a
a
b
b
1
1
2
2
...
Thì mình phải tạo macro như thế nào để khi chạy thì cột B của mình chỉ còn các giá trị a, b, 1, 2 (tức là loại bỏ hết các dữ liệu trùng ra). Mình đã áp dụng phương pháp tạo Danh mục duy nhất của một bạn trong diễn đàn chạy rất OK, nhưng chỉ đối với dữ liệu có từ 2000 dòng trở xuống. Còn với dữ liệu 12.000 dòng như của File mình đang làm thì cách đấy bó tay (tràn bộ nhớ). Mình xin gửi lên đây File mẫu
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
NHG đã viết:
Cảm ơn bạn chibi rất nhiều, cách làm của bạn rất đúng ý mình. Cảm ơn mọi người đã góp ý, lần sau mình sẽ rút kinh nghiệm. Nhân tiện đây chibi và các bạn cho mình hỏi với. Giả sử cột A1:A12000 của mình có các giá trị sau:
a
a
a
b
b
1
1
2
2
...
Thì mình phải tạo macro như thế nào để khi chạy thì cột B của mình chỉ còn các giá trị a, b, 1, 2 (tức là loại bỏ hết các dữ liệu trùng ra). Mình đã áp dụng phương pháp tạo Danh mục duy nhất của một bạn trong diễn đàn chạy rất OK, nhưng chỉ đối với dữ liệu có từ 2000 dòng trở xuống. Còn với dữ liệu 12.000 dòng như của File mình đang làm thì cách đấy bó tay (tràn bộ nhớ). Mình xin gửi lên đây File mẫu

Bạn xem qua nhé. Mình áp dụng Advanced Filter đấy.
Lọc xong nó sẽ sắp xếp lại theo thứ tự tăng dần.

Thân!
 

File đính kèm

Upvote 0
File của bác Okebab hay thật, cả chạy nhanh nữa. Cám ơn bác nhiều. Nhân tiện cho mình hỏi nốt một câu nữa thôi:
Ở cột A mình có các dữ liệu sau:
a
b
c
d
e
a
b
Mình không biết tạo macro như thế nào để ở cột B lọc ra tất cả những giá trị nào mà bên cột A bị trùng (ở ví dụ này là hai thằng ab). Các bạn giúp mình với nhé, và đừng nghĩ mình là người tham lam quá--=0 vì hỏi nhiều quá mà
 
Upvote 0
Bạn có thể sử dụng hàm countif() để đếm só giá trị, nếu lớn hơn 1 là trùng.
 
Upvote 0
Chào bạn,

NHG đã viết:
File của bác Okebab hay thật, cả chạy nhanh nữa. Cám ơn bác nhiều. Nhân tiện cho mình hỏi nốt một câu nữa thôi:
Ở cột A mình có các dữ liệu sau:
a
b
c
d
e
a
b
Mình không biết tạo macro như thế nào để ở cột B lọc ra tất cả những giá trị nào mà bên cột A bị trùng (ở ví dụ này là hai thằng ab). Các bạn giúp mình với nhé, và đừng nghĩ mình là người tham lam quá--=0 vì hỏi nhiều quá mà

Vấn đề bạn đặt ra đã có trên GPE. Bạn có thể vào đây để tham khảo
http://www.giaiphapexcel.com/forum/showthread.php?t=1034
Bài viết của SA_DQ có cả file ví dụ.
Chúc bạn thành công.

Thân !
 
Upvote 0
Ban dung code sau gan vao nut lenh mau xanh roi sau do chay se duoc.
Mã:
Sub Rectangle20_Click()
    Dim DeleteValue As String
    Dim vungchon
    Dim rng As Range
 
    Sheets("CSDL").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.AutoFilter
    ActiveWorkbook.Names.Add Name:="Vungloc", RefersToR1C1:=Selection
    DeleteValue = Range("E1").Value
 
    With ActiveSheet
        .Range("Vungloc").AutoFilter Field:=1, Criteria1:=DeleteValue
    With ActiveSheet.AutoFilter.Range
 
    On Error Resume Next
    Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not rng Is Nothing Then rng.EntireRow.Delete
 
    End With
        .AutoFilterMode = False
    End With
End Sub
-----
Gõ tiếng Việt có dấu khi post bài nhé!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Module1
Sub Xoadong()
Sheets("Sheet1").Select
Ten = Range("B3").Value
Sheets("sheet2").Select
n = Range("B1").Value
Range("b1").Select
Cells(n + 1, 1).EntireRow.Delete
End Sub
Sheet1 chứa button delete
view code
private sub xoa_click
if sheets("sheet2").range("b1")<1 then
MsgBox "Khong co thong tin theo yeu cau!",,"Thong bao"
Else
Xoadong
end if
end sub
Có vài ý trao đổi, xin chỉ giáo thêm
Trong VD trên:
Sheet2 chứa danh sách
Sheet1, khi ta nhập tên vào ô B3 và nhấp nút lệnh delete nếu trong DS có tên vừa nhập sẽ thực hiện lệnh xóa theo yêu cầu, ngược lại sẽ nhận được thông báo.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom