Chào các anh, em là thành viên mới, mới tiếp xúc với excel được một thời gian ngắn, kiến thức còn khá hạn hẹp, mong các bác chỉ giáo.
Hiện tại em có một chương trình tính bộ lọc filter, nhưng tốc độ xử lý chậm quá, do dùng tới 4 vòng for lồng
tính ra với khoảng 1000 dòng thì chắc phải đợi hơn tiếng đồng hồ mới xong được :|. Các bác bớt chút thời gian xem qua dùm em với nhé, vì em sử dụng record macro, nên code hơi dài em giải thích lại như sau ạ:
1. Vùng dữ liệu: Cột B - > Cột J. Dòng thì tuỳ thuộc vào số lượng dữ liệu mình nhập vào
2. Các bước thực hiện của chương trình:
Bước 1: Đếm số phần tử trong các cột D, E, G, H và đẩy vào các mảng tương ứng
Bước 2: Tìm được các phần tử rồi, tiến hành xử lý dữ liệu:
a. Lọc cột D, lấy 1 phần tử ( A(0) )
b. Các dữ liệu đã lọc được tiếp tục filter cột E để lấy 1 tên hàng ( B(0) )
c. Các dữ liệu đã lọc được tiếp tục filter cột G để lấy 1 đơn giá ( Z(0) )
d. Các dữ liệu đã lọc được tiếp tục filter cột G để lấy 1 xuất xứ ( Y(0) )
Bước 3: Copy dòng đầu tiên của phần filter, paste vào phần dòng kế tiếp của phần có dữ liệu (lastcell + 1)
Bước 4: Dòng kế tiếp của dòng cuối cùng có dữ liệu của cột F (tiếp theo của phần có dữ liệu) tính tổng (Subtotal) của những gì mình đã filter được.
Bước 5:. Copy dòng đó sang sheet 2 để có một dữ liệu của phần ta đã lọc
3. Vòng lặp for sẽ chạy dần để lọc được hết dữ liệu
* Mục đích: Khi làm thủ công, lọc các hàng có cùng một mã, cùng tên hàng, có đơn giá và xuất xứ giống nhau, tính tổng của chúng rồi copy mã hàng, tên hàng, số lượng (tổng) đơn giá, xuất xứ ra một file khác. Để cuối cùng ta có một file tổng hợp (tổng cộng các dữ liệu lại)
Các bác giúp em với nhé, em hí hửng làm, cứ tưởng chạy ngon rồi, ai dè cuối cùng lại làm mất khá nhiều thời gian để xứ lý, tuy là có nhanh hơn với việc làm tay (cái này chưa chắc). Nhưng lại phải đợi lâu nếu dữ liệu nhiều thì lại càng toi :|.
Em cảm ơn các bác nhiều


!
Hiện tại em có một chương trình tính bộ lọc filter, nhưng tốc độ xử lý chậm quá, do dùng tới 4 vòng for lồng
tính ra với khoảng 1000 dòng thì chắc phải đợi hơn tiếng đồng hồ mới xong được :|. Các bác bớt chút thời gian xem qua dùm em với nhé, vì em sử dụng record macro, nên code hơi dài em giải thích lại như sau ạ:
1. Vùng dữ liệu: Cột B - > Cột J. Dòng thì tuỳ thuộc vào số lượng dữ liệu mình nhập vào
2. Các bước thực hiện của chương trình:
Bước 1: Đếm số phần tử trong các cột D, E, G, H và đẩy vào các mảng tương ứng
Bước 2: Tìm được các phần tử rồi, tiến hành xử lý dữ liệu:
a. Lọc cột D, lấy 1 phần tử ( A(0) )
b. Các dữ liệu đã lọc được tiếp tục filter cột E để lấy 1 tên hàng ( B(0) )
c. Các dữ liệu đã lọc được tiếp tục filter cột G để lấy 1 đơn giá ( Z(0) )
d. Các dữ liệu đã lọc được tiếp tục filter cột G để lấy 1 xuất xứ ( Y(0) )
Bước 3: Copy dòng đầu tiên của phần filter, paste vào phần dòng kế tiếp của phần có dữ liệu (lastcell + 1)
Bước 4: Dòng kế tiếp của dòng cuối cùng có dữ liệu của cột F (tiếp theo của phần có dữ liệu) tính tổng (Subtotal) của những gì mình đã filter được.
Bước 5:. Copy dòng đó sang sheet 2 để có một dữ liệu của phần ta đã lọc
3. Vòng lặp for sẽ chạy dần để lọc được hết dữ liệu
* Mục đích: Khi làm thủ công, lọc các hàng có cùng một mã, cùng tên hàng, có đơn giá và xuất xứ giống nhau, tính tổng của chúng rồi copy mã hàng, tên hàng, số lượng (tổng) đơn giá, xuất xứ ra một file khác. Để cuối cùng ta có một file tổng hợp (tổng cộng các dữ liệu lại)
Các bác giúp em với nhé, em hí hửng làm, cứ tưởng chạy ngon rồi, ai dè cuối cùng lại làm mất khá nhiều thời gian để xứ lý, tuy là có nhanh hơn với việc làm tay (cái này chưa chắc). Nhưng lại phải đợi lâu nếu dữ liệu nhiều thì lại càng toi :|.
Em cảm ơn các bác nhiều



