Nhờ sửa code lọc dữ liệu

Liên hệ QC

tuan16

Thành viên thường trực
Tham gia
28/11/13
Bài viết
269
Được thích
18
Em xin nhờ các anh chị trong diễn đàn viết giúp em đoạn code để lọc dữ liệu.. cụ thể là khi chọn các giá trị trong cột n2 thì sẽ tự động lọc các giá trị của bảng sẽ cho kết quả như ảnh đính kèm ạ
 

File đính kèm

  • Loc du lieu 01-6-15 (1).xls
    991 KB · Đọc: 18
  • hình ảnh.png
    hình ảnh.png
    150.6 KB · Đọc: 55
Em làm không được ạ.. bác giúp em với ạ
Làm theo bài này

 
Sub LOC_CotD()
Dim sdata As Worksheet
Dim dongcuoi As Variant
Dim i As Integer
Dim cotd As String

Application.ScreenUpdating = False
cotd = Range("N2").Value
Set sdata = Sheets("Don gia chi tiet")
With sdata
.Range("A5:J5").AutoFilter
dongcuoi = "A5:J" & .Cells(.Rows.Count, 4).End(xlUp).Row
ActiveSheet.Range(dongcuoi).AutoFilter Field:=4, Criteria1:=cotd
End With
Set dongcuoi = Nothing
Application.ScreenUpdating = True
End Sub
 

File đính kèm

  • Loc du lieu.xlsm
    474.7 KB · Đọc: 12
Sub LOC_CotD()
Dim sdata As Worksheet
Dim dongcuoi As Variant
Dim i As Integer
Dim cotd As String

Application.ScreenUpdating = False
cotd = Range("N2").Value
Set sdata = Sheets("Don gia chi tiet")
With sdata
.Range("A5:J5").AutoFilter
dongcuoi = "A5:J" & .Cells(.Rows.Count, 4).End(xlUp).Row
ActiveSheet.Range(dongcuoi).AutoFilter Field:=4, Criteria1:=cotd
End With
Set dongcuoi = Nothing
Application.ScreenUpdating = True
End Sub
Chỗ ActiveSheet.Range(dongcuoi).AutoFilter Field:=4, Criteria1:=cotd phải thay bằng
.Range(dongcuoi).AutoFilter Field:=4, Criteria1:=cotd vì đây thuộc phạm vi của With sdata ... End With rồi

Set dongcuoi = Nothing lẽ ra phải là Set sdata = Nothing

Và cái dongcuoi của bạn không phải là dòng mà thực ra là 1 biến chuỗi chứa địa chỉ vùng cần lọc, nên khai báo là AdrsFilter as String
 
Em xin nhờ các anh chị trong diễn đàn viết giúp em đoạn code để lọc dữ liệu.. cụ thể là khi chọn các giá trị trong cột n2 thì sẽ tự động lọc các giá trị của bảng sẽ cho kết quả như ảnh đính kèm ạ
Sử dụng AutoFilter thì không cần rào trước đón sau gì hết, chỉ cần đơn giản vầy thôi:
Mã:
Sub Loc_CotD()
 Sheet32.Range("A1").CurrentRegion.Offset(6).AutoFilter Field:=4, Criteria1:=Range("N2").Value
End Sub
 
Lần chỉnh sửa cuối:
Sử dụng AutoFilter thì không cần rào trước đó sau gì hết, chỉ cần đơn giản vầy thôi:
Mã:
Sub Loc_CotD()
 Sheet32.Range("A1").CurrentRegion.Offset(6).AutoFilter Field:=4, Criteria1:=Range("N2").Value
End Sub
em xin cảm ơn ạ
Bài đã được tự động gộp:

Sub LOC_CotD()
Dim sdata As Worksheet
Dim dongcuoi As Variant
Dim i As Integer
Dim cotd As String

Application.ScreenUpdating = False
cotd = Range("N2").Value
Set sdata = Sheets("Don gia chi tiet")
With sdata
.Range("A5:J5").AutoFilter
dongcuoi = "A5:J" & .Cells(.Rows.Count, 4).End(xlUp).Row
ActiveSheet.Range(dongcuoi).AutoFilter Field:=4, Criteria1:=cotd
End With
Set dongcuoi = Nothing
Application.ScreenUpdating = True
End Sub
dạ em cảm ơn
 
Offset(6) là bao gồm cả 6 dòng trắng bên dưới.
 
Web KT
Back
Top Bottom