Xin giúp code VBA đếm số thứ tự khi lọc dữ liệu

Liên hệ QC

kimtanmap

Thành viên mới
Tham gia
29/12/16
Bài viết
26
Được thích
7
Em đang dùng công thức này để đếm số thứ tự khi lọc dữ liệu
=IF(LEN(B2)=0,"",SUBTOTAL(3,$B$2:B2))
=IF(LEN(B3)=0,"",SUBTOTAL(3,$B$2:B3))
Em xin được giúp đỡ viết code VBA cho việc đếm số thứ tự khi lọc dữ liệu.
Với công thức này em đã thử nghiệm thành công nhưng với dữ liệu lớn thì nó chạy rất lâu với máy cấu hình yếu ạ.
Em có gửi file mẫu ở dưới xin cảm ơn.
 

File đính kèm

  • Test STT.xlsx
    69.2 KB · Đọc: 20
Em đang dùng công thức này để đếm số thứ tự khi lọc dữ liệu


Em xin được giúp đỡ viết code VBA cho việc đếm số thứ tự khi lọc dữ liệu.
Với công thức này em đã thử nghiệm thành công nhưng với dữ liệu lớn thì nó chạy rất lâu với máy cấu hình yếu ạ.
Em có gửi file mẫu ở dưới xin cảm ơn.
bỏ hàm if đi sẽ đỡ bị đơ máy.
Chưa rõ dụng ý hàm if ở đây để làm gì.
Nếu cột B có ô blank tức là không có tên thì không đánh thứ tự thì hàm subtotal trên làm được rồi.
trừ phi bạn cần lọc có cả blank
 
Upvote 0
Một ngày làm việc với một vài files thì có lâu chút cũng chả sao.

Một ngày làm chục files, mỗi file "với dữ liệu lớn [sic]" thì kiếm cái máy khác cho rồi. Chả lẽ công ty quản lý dữ liệu cả đống vậy mà hà tiện, khư khư ôm cái "máy cấu hình yếu [sic]".
 
Upvote 0
bỏ hàm if đi sẽ đỡ bị đơ máy.
Chưa rõ dụng ý hàm if ở đây để làm gì.
Nếu cột B có ô blank tức là không có tên thì không đánh thứ tự thì hàm subtotal trên làm được rồi.
trừ phi bạn cần lọc có cả blank
Theo em nghĩ if vào để nó tính hàm LEN, chứ subtotal không thì nó chỉ đếm 1, 1, 1,...
Bài đã được tự động gộp:

Một ngày làm việc với một vài files thì có lâu chút cũng chả sao.

Một ngày làm chục files, mỗi file "với dữ liệu lớn [sic]" thì kiếm cái máy khác cho rồi. Chả lẽ công ty quản lý dữ liệu cả đống vậy mà hà tiện, khư khư ôm cái "máy cấu hình yếu [sic]".
Nhiều lý do lắm anh, do máy tính cũ bị hư mới đưa cái máy "cùi bắp" vào chạy đỡ nó có 2GB ram buồn lắm ạ.
 
Upvote 0
Có cách nào để không gọi sub nhưng code vẫn chạy được không mọi người?
Em tìm thấy code STT khi filter nhưng phải làm thêm thao tác gọi sub.
Sub STT()
Set rRng = Range("A2:A" & Range("B" & Rows.Count).End(xlUp).Row)
Dim cntr As Integer: cntr = 1

For Each cell In rRng
If cell.EntireRow.Hidden = False Then
Cells(cell.Row, 1).Value = cntr
cntr = cntr + 1
End If
Next

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0

File đính kèm

  • Test STT_Filer_Auto_kimtanmap.xlsm
    75 KB · Đọc: 18
Upvote 0
Web KT
Back
Top Bottom