sealand
Thành viên gạo cội
- Tham gia
- 16/5/08
- Bài viết
- 4,883
- Được thích
- 7,688
- Giới tính
- Nam
- Nghề nghiệp
- Kế Toán
Cái mà bạn nói là nó chạy lung tung đó bạn lưu ý 1 chút sẽ trật tự răm rắp thôi. Trong mỗi đoạn Code có mấy cái chỗ này bạn phải lưu ý:
-Data phải bắt đầu từ dòng 4 không tính dòng tiêu đề. Muốn khác đi bạn phải sửa đoạn code sau:
Tm = Sheet10.Range(Sheet10.[A4], Sheet10.[F65536].End(3))
-Tại file của bạn sheet Data có NameCode là Sheet10 (Bạn thấy nó trên Explore trong VBA) sang file mới bạn phải sửa cho phù hợp.
Tm = Sheet10.Range(Sheet10.[A4], Sheet10.[F65536].End(3))
-Bạn lưu ý Sheet THBCao đều xác định theo NameCode của nó. Bạn chú ý 2 dòng:
...............
Sheet3.[A5:AP1000].ClearContents -------Xoá dữ liệu sheet báo cáo từ dòng 5 đến dòng 1000
...............
With Sheet3 --------Nhập dữ liệu kết quả vào sheet báo cáo
.[A5] = "Thon"
.[B5].Resize(, Dc2.Count).Value = b
.[B5].Offset(, Dc2.Count).Value = "Cong"
.[A6].Resize(Dc1.Count).Value = WorksheetFunction.Transpose(a)
.[A6].Offset(Dc1.Count).Value = "Cong :"
.[B6].Resize(UBound(Kq1, 1), UBound(Kq1, 2)) = Kq1
End With
(Phần chữ đỏ không đậm xác dịnh dòng bắt đầu của báo cáo do code tự điền)
Bạn lưu ý các điểm trên là có thể không cho Code chạy lung tung được.
Còn Dc1, Dc2 nó là 2 cái Dictionary mà, cái khác nhau giữa các Sheet là cột dữ liệu mình đưa vào nhờ Dictionary tổng hợp mà thôi. Chỗ chữ đỏ dòng sau là xác định cột đưa vào
..........
If Not Dc1.exists(Tm(i, 6)) Then
n1 = n1 + 1
Dc1.Add Tm(i, 6), n1
If Not Dc2.exists(Tm(i, 4)) Then
n2 = n2 + 1
Dc2.Add Tm(i, 4), n2
ReDim Preserve Kq(1 To UBound(Tm, 1), 1 To n2)
...........
Bạn yêu nó, cố gắng 1 chút là được vì đây là những kỹ thuật sơ đẳng nhất mà lại có ích cho công việc của chúng ta.
Nói để bạn thấy rằng bạn sẽ làm được, mình hoàn toàn chưa được học bất kỳ 1 lớp tin học nào. Tự nghiên cứu và gần đây với sự trợ giúp của GPE mình cũng tích lũy 1 số kiên thức và giờ có thể giúp bạn.
Chúc bạn thành công.
-Data phải bắt đầu từ dòng 4 không tính dòng tiêu đề. Muốn khác đi bạn phải sửa đoạn code sau:
Tm = Sheet10.Range(Sheet10.[A4], Sheet10.[F65536].End(3))
-Tại file của bạn sheet Data có NameCode là Sheet10 (Bạn thấy nó trên Explore trong VBA) sang file mới bạn phải sửa cho phù hợp.
Tm = Sheet10.Range(Sheet10.[A4], Sheet10.[F65536].End(3))
-Bạn lưu ý Sheet THBCao đều xác định theo NameCode của nó. Bạn chú ý 2 dòng:
...............
Sheet3.[A5:AP1000].ClearContents -------Xoá dữ liệu sheet báo cáo từ dòng 5 đến dòng 1000
...............
With Sheet3 --------Nhập dữ liệu kết quả vào sheet báo cáo
.[A5] = "Thon"
.[B5].Resize(, Dc2.Count).Value = b
.[B5].Offset(, Dc2.Count).Value = "Cong"
.[A6].Resize(Dc1.Count).Value = WorksheetFunction.Transpose(a)
.[A6].Offset(Dc1.Count).Value = "Cong :"
.[B6].Resize(UBound(Kq1, 1), UBound(Kq1, 2)) = Kq1
End With
(Phần chữ đỏ không đậm xác dịnh dòng bắt đầu của báo cáo do code tự điền)
Bạn lưu ý các điểm trên là có thể không cho Code chạy lung tung được.
Còn Dc1, Dc2 nó là 2 cái Dictionary mà, cái khác nhau giữa các Sheet là cột dữ liệu mình đưa vào nhờ Dictionary tổng hợp mà thôi. Chỗ chữ đỏ dòng sau là xác định cột đưa vào
..........
If Not Dc1.exists(Tm(i, 6)) Then
n1 = n1 + 1
Dc1.Add Tm(i, 6), n1
If Not Dc2.exists(Tm(i, 4)) Then
n2 = n2 + 1
Dc2.Add Tm(i, 4), n2
ReDim Preserve Kq(1 To UBound(Tm, 1), 1 To n2)
...........
Bạn yêu nó, cố gắng 1 chút là được vì đây là những kỹ thuật sơ đẳng nhất mà lại có ích cho công việc của chúng ta.
Nói để bạn thấy rằng bạn sẽ làm được, mình hoàn toàn chưa được học bất kỳ 1 lớp tin học nào. Tự nghiên cứu và gần đây với sự trợ giúp của GPE mình cũng tích lũy 1 số kiên thức và giờ có thể giúp bạn.
Chúc bạn thành công.
Lần chỉnh sửa cuối: