nguyenminh121a122
Thành viên mới
- Tham gia
- 11/5/21
- Bài viết
- 27
- Được thích
- 9
Thế bạn muốn Sort cột nào vậy?Anh/Chị xem giúp em để câu lệnh sort ở đâu thì cho kết quả đúng. Em sửa lại nó bị chạy kết quả tán loạn rồi.
Cảm ơn các anh chị rất nhiều !!!
Mình sort đúng cột rồi, cột 2 (cột ngày tháng). nhưng kết quả thì bị sai.Thế bạn muốn Sort cột nào vậy?
Đâu bạn thử sửa chỗ này:Mình sort đúng cột rồi, cột 2 (cột ngày tháng). nhưng kết quả thì bị sai.
Sort thì được nhưng kết quả tính toán vẫn bị sai anh ơi.Đâu bạn thử sửa chỗ này:
With Sheet25.Range("D23:O1000")
.Sort .Cells(1, 2), xlAscending
End With
Thành cái này xem sao:
Sheet25.Range("D23:O1000").Sort Sheet25.Range("E23")
Vậy thì bạn xóa hẳn Sort ở chỗ đó đi thay chỗ này:Sort thì được nhưng kết quả tính toán vẫn bị sai anh ơi.
With Sheet25.[D23:O23].Resize(k)
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Sort .Cells(1, 2), xlAscending
End With
With Sheet25.[D23:O23].Resize(k)
.Borders.LineStyle = xlContinuous
.Borders.Weight = xlThin
.Sort Sheet25.Range("E23")
End With
- sort mảng trước khi ghi kết quả ra sheet thì cũng vẫn vậy.Cột Tồn lũy kế mà bạn sort thì đương nhiên kết quả sai rồi. Bạn thử một trong các cách sau thử:
- Một là bạn sort mảng trước khi ghi kết quả ra sheet
- Hai là giá trị tại cột M, N ghi ra dùng công thức Formular
Nên dùng auto filter, muốn gì sort đấy, cho nhanh và hiệu quảAnh/Chị xem giúp em để câu lệnh sort ở đâu thì cho kết quả đúng. Em sửa lại nó bị chạy kết quả tán loạn rồi.
Cảm ơn các anh chị rất nhiều !!!
Range("M23").resize(k).FormulaR1C1 = "= R21C13 + Sum(R23C9:RC9) - Sum(R23C11:RC11)"
dkSL = Cells(21, 13).value
If i = 1 then
ArrNew(i, 10) = dkSL + arrNew(i, 6) - arrNew(i, 8)
Else
ArrNew(i, 10) = arrNew(i - 1, 10) + arrNew(i, 6) - arrNew(i, 8)
End if
Bạn sửa lại 2 dòng sort:Anh/Chị xem giúp em để câu lệnh sort ở đâu thì cho kết quả đúng. Em sửa lại nó bị chạy kết quả tán loạn rồi.
Cảm ơn các anh chị rất nhiều !!!
.sort .Cells(1, 2), xlAscending
.sort .Cells(23, 4), xlAscending
Xem hình
View attachment 265845
Thời điểm (1) trên sheet đang có kết quả cũ hoặc đang trống, mảng kết quả chỉ đưa xuống ở thời điểm (3). Sort lúc này là vô nghĩa vì sẽ bị xoá
Thời điểm (2): Mảng chưa sort, gắn kết quả cứng vào các dòng của dArr chưa sort
Thời điểm (3): Gán mảng chưa sort xuống sheet.
Thời điểm (4): Sort giá trị cứng, dòng dưới bị đưa lên trên cùng với giá trị cứng của 2 cột 10 và 11.
Khi em làm thế nầy, em dùng công thưc thì bị sai. Anh có thể "Soi" giúp em một chút được không. Em không biết dùng cách nào nữa rồi.Các bước thực hiện thế này:
- Gán giá trị cho mảng kết quả các cột từ 1 đến 9 và cột 12, bỏ 2 cột 10 và 11 rỗng.
- Đưa mảng kết quả xuống
- Sort trên sheet
Cách 1: Gán công thức:
Công thức đúng cho kết quả không có dòng tổng mỗi tháng. Bạn chèn dòng cộng từng tháng vào làm sao còn đúng nữa? Huống chi con số chèn vào đang tính sai: Đầu tháng này phải lấy cuối tháng trước, chứ đâu phải lấy đầu kỳ ở dòng 21.Khi em làm thế nầy, em dùng công thưc thì bị sai. Anh có thể "Soi" giúp em một chút được không. Em không biết dùng cách nào nữa rồi.
Em dùng kết quả chạy bằng mảng thì chạy đúng. Nhưng với code nầy do em không sort được nên 2 cột 11 và 12 chạy sai kết quả. Anh có cách nào khác không? chỉ giúp em với.Công thức đúng cho kết quả không có dòng tổng mỗi tháng. Bạn chèn dòng cộng từng tháng vào làm sao còn đúng nữa? Huống chi con số chèn vào đang tính sai: Đầu tháng này phải lấy cuối tháng trước, chứ đâu phải lấy đầu kỳ ở dòng 21.
Sheet25.Range("M23").Resize(k).FormulaR1C1 = "= R21C13 + Sumif(R23C4:RC4,""<>"",R23C9:RC9) - Sumif(R23C4:RC4,""<>"",R23C11:RC11)"
Sheet25.Range("N23").Resize(k).FormulaR1C1 = "= R21C14 + Sumif(R23C4:RC4,""<>"",R23C10:RC10) - Sumif(R23C4:RC4,""<>"",R23C12:RC12)"