nhờ sửa code autofillter

Liên hệ QC

khaiktt

Thành viên chính thức
Tham gia
20/3/11
Bài viết
59
Được thích
15
Xin nhà các anh chị viết lại giúp macro trong file đính kềm để khi thêm bất kỳ mã lọc nào cũng in ra được hết
VD: Hiện tại trong cột của em hiện nay có tất cả 03 mã nhưng khi có thêm mã trong cột đó thì macro cũng lọc ra được và in luôn mã đó
Cảm ơn các anh chị nhiều
 

File đính kèm

  • Book1.rar
    22 KB · Đọc: 17
Bạn có thể dùng code này thay cho code trên
Mã:
Sub test()
With Sheet1.Range("A5:P5000")
    If .Parent.AutoFilterMode = True Then .Parent.AutoFilterMode = False
        .AutoFilter 16, "<>"
End With
End Sub
 
Upvote 0
Bạn thử cái này xem sao

Mã:
Sub Loc()
Dim Arr, sArr
Dim i, k As Long
Dim Dic As Object


sArr = Sheet1.Range("p6", Range("p65536").End(xlUp))
Set Dic = CreateObject("scripting.dictionary")


ReDim Arr(1 To UBound(sArr), 1 To 1)


With Dic
    For i = 1 To UBound(sArr)
        If Not .exists(sArr(i, 1)) And sArr(i, 1) <> 0 Then
            k = k + 1
            .Add sArr(i, 1), k
            Arr(k, 1) = sArr(i, 1)
        End If
    Next
End With




For i = 1 To k
    Sheet1.Range("a5:p5").AutoFilter Field:=16, Criteria1:=Arr(i, 1)
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next


End Sub
 
Upvote 0
Cảm ơn bạn, mình muốn lọc được xong phải in ra ngay từng cái. Bạn xem giúp mình nhé
Cảm ơn nhiều.
Bạn có thể dùng code này thay cho code trên
Mã:
Sub test()
With Sheet1.Range("A5:P5000")
    If .Parent.AutoFilterMode = True Then .Parent.AutoFilterMode = False
        .AutoFilter 16, "<>"
End With
End Sub
 
Upvote 0
Bạn thử cái này xem sao

Mã:
Sub Loc()
Dim Arr, sArr
Dim i, k As Long
Dim Dic As Object


[COLOR=#ff0000]sArr = Sheet1.Range("p6", Range("p65536").End(xlUp))[/COLOR] ------>Vùng dữ liệu của mình cần đến P307 thì có được không?
Set Dic = CreateObject("scripting.dictionary")


ReDim Arr(1 To UBound(sArr), 1 To 1)


With Dic
    For i = 1 To UBound(sArr)
        If Not .exists(sArr(i, 1)) And sArr(i, 1) <> 0 Then
            k = k + 1
            .Add sArr(i, 1), k
            Arr(k, 1) = sArr(i, 1)
        End If
    Next
End With




For i = 1 To k
    Sheet1.Range("a5:p5").AutoFilter Field:=16, Criteria1:=Arr(i, 1) [COLOR=#ff0000]----> và khi mình thay vào là P307 thì chỗ này báo lối màu vàng[/COLOR]
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next


End Sub

Cảm ơn bạn đã giúp đỡ. Cồn một số vướng mắc nhỏ mong bạn điều chỉnh giúp
 
Upvote 0
Cảm ơn bạn đã giúp đỡ. Cồn một số vướng mắc nhỏ mong bạn điều chỉnh giúp
Cái này có nút cảm ơn nhé bạn
sArr = Sheet1.Range("p6", Range("p65536").End(xlUp)) ------>Vùng dữ liệu của mình cần đến P307 thì có được không?
Bạn đã thử tới P307 chưa? Không thử sao biết
Sheet1.Range("a5:p5").AutoFilter Field:=16, Criteria1:=Arr(i, 1) ----> và khi mình thay vào là P307 thì chỗ này báo lối màu vàng
Bạn thay P307 chỗ nào? Đưa file lên đây!

Nói tóm lại: Khi bạn đưa yêu cầu giúp đỡ thì dữ liệu phải đúng, yêu cầu phải đúng chứ viết ra rồi bạn sửa sai thì không ra kết quả đâu. Bạn test kỹ lại, nếu sai thì post file dữ liệu chuẩn lên đây.
 
Upvote 0
Dạ file gốc của em đây ạ, mong các bác giúp đỡ
 

File đính kèm

  • hop dong lao dong 2008.zip
    398.5 KB · Đọc: 30
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom