Lọc dữ liệu chứa tên bằng button? (2 người xem)

Liên hệ QC

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

vuquyen10693

Thành viên mới
Tham gia
25/6/13
Bài viết
34
Được thích
9
Nghề nghiệp
Sinh viên
Tối qua ngồi tự nhiên nghĩ ra bài toán, mình lập 1 danh sách tên các thành viên một tổ chức. Có 3 cột: Họ và tên, Địa chỉ, thông tin cá nhân. Cột địa chỉ ghi tỉnh thành khá linh tinh (người thì 123 hà nội, 456 Hà Nội, việt nam,7890 hưng Yên .......
Bây giờ mình định dùng vba lọc lấy tên các thành viên của từng tỉnh (có thể là tên tự đánh vào, hoặc theo list validation). Nhưg khó ở chỗ là đặt vùng điều kiện thì khôg biết cách liên kết tên tỉnh sau dấu *,?,* để lọc.
Các bạn xem giúp mình với nhé!
 

File đính kèm

Tối qua ngồi tự nhiên nghĩ ra bài toán, mình lập 1 danh sách tên các thành viên một tổ chức. Có 3 cột: Họ và tên, Địa chỉ, thông tin cá nhân. Cột địa chỉ ghi tỉnh thành khá linh tinh (người thì 123 hà nội, 456 Hà Nội, việt nam,7890 hưng Yên .......
Bây giờ mình định dùng vba lọc lấy tên các thành viên của từng tỉnh (có thể là tên tự đánh vào, hoặc theo list validation). Nhưg khó ở chỗ là đặt vùng điều kiện thì khôg biết cách liên kết tên tỉnh sau dấu *,?,* để lọc.
Các bạn xem giúp mình với nhé!

Xem thử file đính kèm xem : ( nhập địa chỉ vào ô B29 hoặc chọn ở ô C29)
 
Mình được voi đòi tiên rồi, hi, bạn giúp mình giải thích qua các đoạn code này với, nói sơ sơ cũng được về từ khóa ấy, để lần sau mình biết áp dụng cho bài toán khác được không? Thanks Hungpecc1 nhiều nhiều lắm.
Sub GPE(rng As Range)
[IV1:IV2].Clear: [B11].Copy [IV1]
[IV2] = "*" & rng
Range("A11:C25").AdvancedFilter 2, [IV1:IV2], [A31:C31]
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$29" Or Target.Address = "$C$29" Then
Module1.GPE Target
End If
End Sub
 
Mình được voi đòi tiên rồi, hi, bạn giúp mình giải thích qua các đoạn code này với, nói sơ sơ cũng được về từ khóa ấy, để lần sau mình biết áp dụng cho bài toán khác được không? Thanks Hungpecc1 nhiều nhiều lắm.
Sub GPE(rng As Range)
[IV1:IV2].Clear: [B11].Copy [IV1]
[IV2] = "*" & rng
Range("A11:C25").AdvancedFilter 2, [IV1:IV2], [A31:C31]
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$29" Or Target.Address = "$C$29" Then
Module1.GPE Target
End If
End Sub

Cái này bạn lọc bằng advanced Filter rồi record macro là hiểu ngay !
Vùng tiêu chuẩn ở đây là ô IV1 và IV2 trong đó IV1= ô B11 , IV = * & ô C29 hoặc =* & ô B29 thế thôi
 
Mình không biết gì nhiều về VBA đâu bạn, chỉ vài cú pháp linh tinh, giúp mình làm rõ mấy cái này nhé:
1. Sub GPE(rng As Range)
-> Cái này mình không hiểu trong ngoặc, giải thích dùm mình với? Tưởng dòng đầu chỉ mỗi sub đặttên() thui nhỉ?
cả đoạn dưới mình cũng không rõ.
Hix, phiền bạn quá, có khi để mình nhờ bên giải thích code vây?


 
Mình không biết gì nhiều về VBA đâu bạn, chỉ vài cú pháp linh tinh, giúp mình làm rõ mấy cái này nhé:
1. Sub GPE(rng As Range)
-> Cái này mình không hiểu trong ngoặc, giải thích dùm mình với? Tưởng dòng đầu chỉ mỗi sub đặttên() thui nhỉ?
cả đoạn dưới mình cũng không rõ.
Hix, phiền bạn quá, có khi để mình nhờ bên giải thích code vây?


Trich tài liệu của a PT Hướng :
9.2. Thủtục (Sub)
Là chương trình con không trảvềgiá trịkhi được gọi. Cú pháp khai báo như sau:

[Private/Public/Friend][Static] Sub <Tên_hàm> ([Các_tham_số])
[Khối_lệnh]
End Sub
Ví dụ: đểtạo một chương trình con dạng thủtục có tính năng nhưphần trên có thểviết mã lệnh
nhưsau:
Mã:
Sub Dien_Tich(Rong as Double, Dai as Double, Dt as Double) 
Dt=Rong*Dai 
End Sub

còn phương thức advanced filter như sau :
Range().advancedFilter xlfiltercopy, criteria range, copy to range, unique <-------- gõ trong vba là thấy mà !
 
Web KT

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

Back
Top Bottom