nguyenquyetnd993
Thành viên chính thức
- Tham gia
- 31/5/19
- Bài viết
- 53
- Được thích
- 11
Chào mọi người ạ!
Em có lấy 1 code trong 1 bài viết trên GPE để áp dụng cho bài toán của mình. code lọc theo 3 điều kiện nhưng có 1 vấn đề là nếu em nhập thiếu 1 trong 3 điều kiện này thì code chạy không đúng ý, nhờ mọi người sửa dùm em, nếu thiếu 1 hoặc 2 trong 3 điều kiện này( Ô điền điều kiện bổ trống) thì nó sẽ lọc theo điều kiện còn lại . Em xin phép đính kèm file đó luôn.
Em xin cảm ơn.
Sub GPE()
Dim i As Long, j As Integer, iRow As Long, Arr(), k As Long, Ngay1, Ngay2, LoaiVB As String
iRow = Sheets(2).Range("B5").End(xlDown).Row
ReDim Arr(1 To iRow, 1 To 11)
Ngay1 = Sheets(1).Range("C2"): Ngay2 = Sheets(1).Range("F2")
LoaiVB = Sheets(1).Range("C3")
With Worksheets(2).Range("b5:b" & iRow)
Set c = .Find(Sheets(1).Range("C4"), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If Sheets(2).Cells(c.Row, 4) = LoaiVB And Sheets(2).Cells(c.Row, 7) >= Ngay1 _
And Sheets(2).Cells(c.Row, 7) <= Ngay2 Then
k = k + 1: Arr(k, 1) = k
For j = 2 To 11
Arr(k, j) = Sheets(2).Cells(c.Row, j)
Next
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Sheets(1).Range("A8:K" & Sheets(1).Range("B65500").End(xlUp).Row + 2).ClearContents
If k > 0 Then Sheets(1).Range("A8").Resize(k, 11) = Arr
End Sub
Em có lấy 1 code trong 1 bài viết trên GPE để áp dụng cho bài toán của mình. code lọc theo 3 điều kiện nhưng có 1 vấn đề là nếu em nhập thiếu 1 trong 3 điều kiện này thì code chạy không đúng ý, nhờ mọi người sửa dùm em, nếu thiếu 1 hoặc 2 trong 3 điều kiện này( Ô điền điều kiện bổ trống) thì nó sẽ lọc theo điều kiện còn lại . Em xin phép đính kèm file đó luôn.
Em xin cảm ơn.
Sub GPE()
Dim i As Long, j As Integer, iRow As Long, Arr(), k As Long, Ngay1, Ngay2, LoaiVB As String
iRow = Sheets(2).Range("B5").End(xlDown).Row
ReDim Arr(1 To iRow, 1 To 11)
Ngay1 = Sheets(1).Range("C2"): Ngay2 = Sheets(1).Range("F2")
LoaiVB = Sheets(1).Range("C3")
With Worksheets(2).Range("b5:b" & iRow)
Set c = .Find(Sheets(1).Range("C4"), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If Sheets(2).Cells(c.Row, 4) = LoaiVB And Sheets(2).Cells(c.Row, 7) >= Ngay1 _
And Sheets(2).Cells(c.Row, 7) <= Ngay2 Then
k = k + 1: Arr(k, 1) = k
For j = 2 To 11
Arr(k, j) = Sheets(2).Cells(c.Row, j)
Next
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Sheets(1).Range("A8:K" & Sheets(1).Range("B65500").End(xlUp).Row + 2).ClearContents
If k > 0 Then Sheets(1).Range("A8").Resize(k, 11) = Arr
End Sub