Filter cả chữ và số

Liên hệ QC

kobebryant

Thành viên thường trực
Tham gia
7/8/09
Bài viết
248
Được thích
28
Mình dùng Macro ghi lại đoạn quá trình filter thì nó ghi theo mảng, mình ko biết cách viết lại code sao cho phù hợp.
Cách mình filter là lọc số hoặc chuỗi bắt đầu bằng 500. Nhưng ko hiểu sao code viết ra nó chỉ lọc chuỗi chứ ko lọc số nào bắt đầu là 500

Mã:
ActiveSheet.Range("$A$7:$P$560).AutoFilter Field:=1, Criteria1:="500*"

Xin cám ơn.
 
Range("$A$7:$P$560).AutoFilter Field:=1
Lọc 1 cột thì chỉ ôm 1 cột thôi.

Range("$A$7:$A$560).AutoFilter Field:=1

---
lọc số hoặc chuỗi bắt đầu bằng 500
Cách đơn giản nhất là tạo cột phụ.

Const RngData = "A7:A560"
Const RngFilter = "Q7:Q560" '---> cột phụ'
Const StrCriteria = "500*"
With ActiveSheet
If .FilterMode = True Then .ShowAllData
.Range(RngFilter).NumberFormat = "@"
.Range(RngFilter).value = .Range(RngData).Value
.Range(RngFilter).AutoFilter Field:=1, Criteria1:=StrCriteria
End With
 
Mình dùng Macro ghi lại đoạn quá trình filter thì nó ghi theo mảng, mình ko biết cách viết lại code sao cho phù hợp.
Cách mình filter là lọc số hoặc chuỗi bắt đầu bằng 500. Nhưng ko hiểu sao code viết ra nó chỉ lọc chuỗi chứ ko lọc số nào bắt đầu là 500

Mã:
ActiveSheet.Range("$A$7:$P$560).AutoFilter Field:=1, Criteria1:="500*"

Xin cám ơn.
Tại A3 bạn nhập tùy ý theo dữ liệu cột A rồi thử code sau:

Sheet1.Range("A7").CurrentRegion.AutoFilter Field:=1, Criteria1:=[A3]
 
Tại A3 bạn nhập tùy ý theo dữ liệu cột A rồi thử code sau:

Sheet1.Range("A7").CurrentRegion.AutoFilter Field:=1, Criteria1:=[A3]
Trong cột cần lọc có cả số và chuỗi mà anh, và người ta cần lọc được cả số và chuỗi bắt đầu bằng "500"

1609215904674.png
 
Lọc 1 cột thì chỉ ôm 1 cột thôi.

Range("$A$7:$A$560).AutoFilter Field:=1

---

Cách đơn giản nhất là tạo cột phụ.

Const RngData = "A7:A560"
Const RngFilter = "Q7:Q560" '---> cột phụ'
Const StrCriteria = "500*"
With ActiveSheet
If .FilterMode = True Then .ShowAllData
.Range(RngFilter).NumberFormat = "@"
.Range(RngFilter).value = .Range(RngData).Value
.Range(RngFilter).AutoFilter Field:=1, Criteria1:=StrCriteria
End With
Có cách nào không cần cột phụ không bạn
Tại A3 bạn nhập tùy ý theo dữ liệu cột A rồi thử code sau:

Sheet1.Range("A7").CurrentRegion.AutoFilter Field:=1, Criteria1:=[A3]
Theo code này thì nó lọc theo dữ liệu tại A3 chứ nó ko lọc theo yêu cầu "500*", nó ko hiểu "*"
 
Có chứ. Với 1 dòng code cụt ngủn ở bài #1 mà đơn giản nhất như bài #2 cũng gần 10 dòng code mới rồi.
Và quan trọng tốc độ cũng chớp chớp mắt rồi.
Thôi mình cứ tạm vậy đã.
Tại mình nghĩ nếu cột phụ thì mình dùng hàm LEFT 3 ký tự rồi filter "500" theo đó là xong
 

File đính kèm

  • Lọc với cột phụ.xlsm
    18.2 KB · Đọc: 6
Web KT
Back
Top Bottom