nguyenkhoadng
Thành viên hoạt động



- Tham gia
- 15/6/11
- Bài viết
- 179
- Được thích
- 30






topic trôi xa quá, up lên nhờ các anh giúp.









Không phải không làm được mà viết code chạy với mấy cái ô Merge tùm lum chẳng ai muốn viết.Không biết em trình bày ở bài #1, #4 có rõ chưa mà 23 lần tải vẫn chưa có anh nào hồi âm.
Nhờ các anh giúp với.
em cảm ơn!
Không biết em trình bày ở bài #1, #4 có rõ chưa mà 23 lần tải vẫn chưa có anh nào hồi âm.
Nhờ các anh giúp với.
em cảm ơn!



Trước tiên em cảm ơn anh nhiều!
1. Nếu bỏ merge thì thay vào đó bằng tạo 1 cột ngay bên cạnh cột merge và ẩn cột này được không anh?
2. Tên cấu kiện là khác nhau, tùy thuộc vào từng hạng mục bốc tách khối lượng. (ví dụ như dầm thì có dầm D1, D2,...; cột thì có cột C1, C2,...; móng thì có móng M1, M2,...) nói chung phần tên này là tùy thuộc vào người dùng anh ah.
3. Phi thì tùy anh ah, chứ không phải bao nhiêu đó đâu. Nhiều lúc phi còn lặp đi lặp lại nữa (Vì tùy thuộc vào hình dạng mỗi thanh)
4. Vì bảng khối lượng lúc dài lúc ngắn, lúc có loại thép này, lúc có loại thép kia nên dùng vba tốt hơn dùng công thức anh ah.
Cảm ơn anh!
Sub tonghop()
Dim ng As Variant, kq(), i, j, k, h As Long, d As Object, tenCK As String
ng = [a7].Resize([b60000].End(3).Row, 18).Value
Set d = CreateObject("Scripting.Dictionary")
ReDim kq(1 To 6000, 1 To 7)
For i = 1 To UBound(ng)
If Not IsEmpty(ng(i, 1)) Then tenCK = ng(i, 1)
If Not d.exists(tenCK & ng(i, 9)) Then
k = k + 1
d.Add tenCK & ng(i, 9), k
kq(k, 1) = ng(i, 1)
kq(k, 2) = ng(i, 9)
kq(k, 3) = ng(i, 16)
kq(k, 4) = ng(i, 17)
Else
h = d.Item(tenCK & ng(i, 9))
kq(h, 3) = kq(h, 3) + ng(i, 16)
kq(h, 4) = kq(h, 4) + ng(i, 17)
End If
Select Case ng(i, 9)
Case Is <= 10
kq(k, 5) = kq(k, 5) + ng(i, 18) ' nho hon 10
Case 11 To 18
kq(k, 6) = kq(k, 6) + ng(i, 18)
Case Is > 18
kq(k, 7) = kq(k, 7) + ng(i, 18)
End Select
Next
If k Then [u19].Resize(k, 7).Value = kq
Set d = Nothing
End Sub
Đã cố làm cho kết quả giống của bạn, muốn Merge thì làm thủ công nhé.Trước tiên em cảm ơn anh nhiều!
1. Nếu bỏ merge thì thay vào đó bằng tạo 1 cột ngay bên cạnh cột merge và ẩn cột này được không anh?
2. Tên cấu kiện là khác nhau, tùy thuộc vào từng hạng mục bốc tách khối lượng. (ví dụ như dầm thì có dầm D1, D2,...; cột thì có cột C1, C2,...; móng thì có móng M1, M2,...) nói chung phần tên này là tùy thuộc vào người dùng anh ah.
3. Phi thì tùy anh ah, chứ không phải bao nhiêu đó đâu. Nhiều lúc phi còn lặp đi lặp lại nữa (Vì tùy thuộc vào hình dạng mỗi thanh)
4. Vì bảng khối lượng lúc dài lúc ngắn, lúc có loại thép này, lúc có loại thép kia nên dùng vba tốt hơn dùng công thức anh ah.
Cảm ơn anh!



tôi sẻ chỉnh thêm cho giống với form của bạn,
bạn thử cho chạy code này xem
cái cột "riêng" (cột thứ 4) trong bảng kết quả là kết quả cột dồn của cột nào bên bảng thống kê?