2 lỗi đánh nhanh chứ không phải 1.
@chủ bài #1473:
1. sao biết For...Next sẽ lâu?
2. chỉ cần lọc một mã sang sheet khác thì dùng Advanced Filter. Ở diễn đàn này có cả đống. Chỉ là về sau có mấy người khoái Đít sần cho nên cứ thấy từ "lọc, tổng" là tương đít sần vào. Muốn tìm các giải thuật khác thì chịu khó mò mấy bài cũ. Không có kiên nhẫn mò thì Record Macro.
3. muốn tôi chỉ gì thêm nữa thì sửa mấy từ tiếng Anh đi. Tôi không thích moa toa luỹ ẻn.
Thanks bạn đã góp ý DẤT xây dựng, nhưng mình không muốn dùng filter trên sheet (và chưa có cách nào dùng được để giải quyết bài toán của mình).
Bài toán của mình ở đây là tính lãi chậm thanh toán bán hàng sản phẩm là căn hộ.
Dữ liệu đầu vào nằm trong 3 sheet, cụ thể như sau:
- Sheet 1: Lưu danh sách các căn hộ (mã căn hộ, các thông số căn hộ, số tiền bán, ngày bán)
- Sheet 2: Lưu tiến độ yêu cầu thanh toán của tất cả các căn hộ ((1) mã căn hộ, (2) ngày cần thanh toán, (3) số tiền cần thanh toán) (mỗi căn hộ có số lần yêu cầu thanh toán khác nhau nên bảng dữ liệu này chỉ gồm 3 cột)
- Sheet 3: Lưu dữ liệu thanh toán thực tế của tất cả các khách hàng ((1) mã căn hộ, (2) ngày thanh toán, (3) số tiền thanh toán), (mỗi căn hộ có số lần thanh toán khác nhau nên bảng dữ liệu này chỉ gồm 3 cột)
Mình đã viết code để xử lý theo kiểu For ... Next và đã xử lý được, cách xử lý như sau:
Để tính lãi chậm trả cho 1 mã sản phẩm
- Gán dữ liệu sheet 2 vào mảng (AR-1)
- Gán dữ liệu sheet 3 vào mảng (AR-2)
For (1) Quét các dữ liệu trong AR-1 (để lấy từng yêu cầu thanh toán của căn hộ cần tính) (
dữ liệu cần quét hàng nghìn dòng)
For (2) Quét các dữ liệu trong AR-2 (để lấy từng đợt thanh toán thực tế của căn hộ cần tính) (
dữ liệu cần quét hàng nghìn dòng)
Xử lý tính toán lãi chậm trả nếu thanh toán chậm so với yêu cầu
Next 2
Next 1
Cụ thể code mình đã viết ở đây:
https://www.giaiphapexcel.com/diendan/threads/hỗ-trợ-code-vba-tính-lãi-chậm-thanh-toán.157791/
Cách làm của mình đã giải quyết được nhưng mình thấy nó hơi chậm nên muốn nhờ ACE giúp đỡ xem có nhanh hơn được không.
Ở đây mình thấy có thể nhanh hơn nếu có cách copy các dữ liệu thỏa mãn điều kiện từ 1 mảng sang 1 mảng khác mà không phải duyệt từng dữ liệu, cụ thể như sau:
- Gán dữ liệu sheet 2 vào mảng (AR-1)
- Gán dữ liệu sheet 3 vào mảng (AR-2)
- Copy dữ liệu mảng AR-1 chỉ của mã căn hộ cẩn tính sang mảng AR1.1
- Copy dữ liệu mảng AR-2 chỉ của mã căn hộ cẩn tính sang mảng AR2.1
For (1) Quét các dữ liệu trong
AR-1.1 (để lấy từng yêu cầu thanh toán) (
khoảng 5 hàng)
For (2) Quét các dữ liệu trong
AR-2.1 (để lấy từng đợt thanh toán thực tế) (
khoảng 10 hàng)
Xử lý tính toán lãi chậm trả nếu thanh toán chậm so với yêu cầu
Next 2
Next 1
Sorry vì mình không đưa ra bài toán tổng thể ban đầu mà chỉ đề nghị hỗ trợ 1 việc cụ thể (là copy các dữ liệu thỏa mãn 1 điều kiện cụ thể sang 1 mảng khác mà không cần duyệt từng dữ liệu).
(Mình đã để ý đánh máy cẩn thận, nếu có gõ nhầm ACE thông cảm nhé)
Thanks các bác