happyghost2000
Thành viên chính thức
- Tham gia
- 24/5/08
- Bài viết
- 70
- Được thích
- 6
File đính kèm
Lần chỉnh sửa cuối:
Chào các Anh , Chị
Em có dữ liệu Order Chi tiết bảng A, Em muốn nó tự động Group dữ liệu qua bảng B như hình bên dưới.
Khi thêm dữ liệu Order vào bảng A, thì bảng B tự động chạy luôn .
Cột AC đến AO là tổng từng cột H đến T
Mong hỗ trợ giúp em .
Em cám ơn rất nhiều.
View attachment 261754
Cám ơn bạn mình sẽ sửa lại tiêu đềBạn không nên viết hoa ở tiêu đề như thế là vi phạm nội quy, và sẽ không có ai giúp bạn
Nện sửa lại.
Chữ tiếng gì không biết, thấy sao làm vậy:Cám ơn bạn mình sẽ sửa lại tiêu đề
Option Explicit
Public Sub Gpe()
Const Cols As Long = 20
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Rws As Long, Txt As String
sArr = Range("A3", Range("A3").End(xlDown)).Resize(, Cols).Value
Rws = UBound(sArr)
ReDim dArr(1 To Rws, 1 To Cols)
With CreateObject("Scripting.Dictionary")
For I = 1 To Rws
Txt = Empty
For J = 1 To 5
Txt = Txt & sArr(I, J) & "#"
Next J
If Not .Exists(Txt) Then
K = K + 1
.Item(Txt) = K
For J = 1 To Cols
dArr(K, J) = sArr(I, J)
Next J
dArr(K, 6) = Empty: dArr(K, 7) = Empty
Else
R = .Item(Txt)
For J = 8 To Cols
If sArr(I, J) > 0 Then dArr(R, J) = dArr(R, J) + sArr(I, J)
Next J
End If
Next I
End With
Range("V3").Resize(10000, Cols).ClearContents
Range("V3").Resize(K, Cols) = dArr
End Sub
Góp thêm một code, thử xem sao.Chào các Anh , Chị
Em có dữ liệu Order Chi tiết bảng A, Em muốn nó tự động Group dữ liệu qua bảng B như hình bên dưới.
Khi thêm dữ liệu Order vào bảng A, thì bảng B tự động chạy luôn .
Cột AC đến AO là tổng từng cột H đến T
Mong hỗ trợ giúp em .
Em cám ơn rất nhiều.
View attachment 261754
Xin cám ơn bạn . rất nhiềuGóp thêm một code, thử xem sao.
bạn thêm tháng khác, mã khác, loại khác( 5 cột đầu tiên ) và chạy thử nhé
Xin cám ơn Anh rất nhiều .Chữ tiếng gì không biết, thấy sao làm vậy:
PHP:Option Explicit Public Sub Gpe() Const Cols As Long = 20 Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Rws As Long, Txt As String sArr = Range("A3", Range("A3").End(xlDown)).Resize(, Cols).Value Rws = UBound(sArr) ReDim dArr(1 To Rws, 1 To Cols) With CreateObject("Scripting.Dictionary") For I = 1 To Rws Txt = Empty For J = 1 To 5 Txt = Txt & sArr(I, J) & "#" Next J If Not .Exists(Txt) Then K = K + 1 .Item(Txt) = K For J = 1 To Cols dArr(K, J) = sArr(I, J) Next J dArr(K, 6) = Empty: dArr(K, 7) = Empty Else R = .Item(Txt) For J = 8 To Cols If sArr(I, J) > 0 Then dArr(R, J) = dArr(R, J) + sArr(I, J) Next J End If Next I End With Range("V3").Resize(10000, Cols).ClearContents Range("V3").Resize(K, Cols) = dArr End Sub
Góp thêm một code, thử xem sao.
bạn thêm tháng khác, mã khác, loại khác( 5 cột đầu tiên ) và chạy thử nhé
For j = 1 To UBound(sArray, 2)
aResult(t, j) = sArray(i, j)
aResult(t, 6) = Empty
aResult(t, 7) = Empty
...................................................
j=1 to 20, sẽ gán 20 lần:
aResult(t, 6) = Empty
aResult(t, 7) = Empty
Theo tôi, nên cho 2 dòng này ra khỏi vòng lặp JPHP:For j = 1 To UBound(sArray, 2) aResult(t, j) = sArray(i, j) aResult(t, 6) = Empty aResult(t, 7) = Empty ................................................... j=1 to 20, sẽ gán 20 lần: aResult(t, 6) = Empty aResult(t, 7) = Empty