USB1394
Thành viên hoạt động
- Tham gia
- 20/12/08
- Bài viết
- 173
- Được thích
- 12
- Nghề nghiệp
- Lính triều đình
Đối với những bài dạng này tôi vẫn thích làm bằng tay hơn.Mình có một bảng phát sinh chi tiết , mình muốn chuyển thành bảng phát sinh tổng hợp theo từng khách hàng . Mình có gởi kèm file , mong các bạn giúp đỡ , xin cám ơn
Code thì tôi làm như thế này:Phải công nhận bạn huuthang_bd làm chuyên nghiệp sao , y như trong trong quảng cáo . .! Cũng mong bạn hiểu vì dữ liệu trong bảng luôn thay đổi , nếu làm bằng tay thì gặp rất nhiều lỗi (quên 1 bước là tiêu liền) . Nên mình mới dùng VBA . Mong nhận được sự quan tâm và giúp đỡ của bạn , xin cám ơn
Sub TongHop()
Dim Data As Variant, Arr(1 To 65536, 1 To 6), i As Long, TenKh As String, j As Long, k As Long
Sheet2.UsedRange.Clear
With Sheet1.Range(Sheet1.[G3], Sheet1.[A65536].End(xlUp))
.Sort Sheet1.[A3], 1, Header:=xlYes
Data = .Value
End With
If UBound(Data) = 1 Then Exit Sub
For i = 2 To UBound(Data)
If Data(i, 1) <> TenKh Then
k = k + 2
TenKh = Data(i, 1)
Arr(k, 1) = "Tên KH"
Arr(k, 2) = TenKh
k = k + 1
For j = 2 To 7
Arr(k, j - 1) = Data(1, j)
Next
End If
k = k + 1
For j = 2 To 7
Arr(k, j - 1) = Data(i, j)
Next
Next
Sheet2.[A1:F1].Resize(k).Value = Arr
End Sub
Xin cám ơn bạn , code của bạn khó quá mình sẽ nghiên cứu từ bước mới hiểu và áp dụng được . Bạn có thể giải thích từng dòng lệnh ko ?Code thì tôi làm như thế này:
PHP:Sub TongHop() Dim Data As Variant, Arr(1 To 65536, 1 To 6), i As Long, TenKh As String, j As Long, k As Long Sheet2.UsedRange.Clear With Sheet1.Range(Sheet1.[G3], Sheet1.[A65536].End(xlUp)) .Sort Sheet1.[A3], 1, Header:=xlYes Data = .Value End With If UBound(Data) = 1 Then Exit Sub For i = 2 To UBound(Data) If Data(i, 1) <> TenKh Then k = k + 2 TenKh = Data(i, 1) Arr(k, 1) = "Tên KH" Arr(k, 2) = TenKh k = k + 1 For j = 2 To 7 Arr(k, j - 1) = Data(1, j) Next End If k = k + 1 For j = 2 To 7 Arr(k, j - 1) = Data(i, j) Next Next Sheet2.[A1:F1].Resize(k).Value = Arr End Sub
Code không có lệnh nào lạ cả. Cái quan trọng ở đây là thuật toán: Sắp sếp lại dữ liệu theo tên khách hàng. Duyệt qua từng dòng và gán vào mảng. Khi xuất hiện khách hàng mới thì tạo thêm các dòng tiêu đề. Thế thôi.Xin cám ơn bạn , code của bạn khó quá mình sẽ nghiên cứu từ bước mới hiểu và áp dụng được . Bạn có thể giải thích từng dòng lệnh ko ?
Yêu cầu của bạn không rõ, thí dụ trong sheet "Data" mảnh DC1 loại đất LNC có 19 thửa thì diện tích tính làm sao ???Tôi nhờ mọi người giúp với. Có File kèm yêu cầu nằm trong Sheet "tong hop 2"
Tạo 1 code giống như của Boyxin có cái nút bấm trong "tong hop 1"
Yêu cầu của bạn không rõ, thí dụ trong sheet "Data" mảnh DC1 loại đất LNC có 19 thửa thì diện tích tính làm sao ???
Tốt nhất bạn gởi lại một file mới có 2 sheet, sheet chứa dữ liệu và sheet kết quả, giải thích cách tính toán, lấy dữ liệu cho kết quả thật kỹ nhé bạn
Mà sao bạn không mở Topic mới mà chen vào Topic này vậy
Thân