Hết khó cho tới khi bạn biểu đạt được vấn đề của mình. Nếu khó biểu đạt thì làm vài ví dụ kết quả minh họa...Ca này có vẻ hơi khó ạ![]()
Ca này có vẻ hơi khó ạ
Chẳng ai hiểu bạn muốn làm cái gì?????
Theo tôi hiểu thì dùng biểu này để báo cáo, chứ chẳng ai theo dõi kỳ hoặc vậy cả.
Trong mỗi sheet là 1 cơ sở sử dụng thuốc, có loại thuốc thì giống, có loại lại khác nhau.Hết khó cho tới khi bạn biểu đạt được vấn đề của mình. Nếu khó biểu đạt thì làm vài ví dụ kết quả minh họa...

Trong mỗi sheet là 1 cơ sở sử dụng thuốc, có loại thuốc thì giống, có loại lại khác nhau.
Ví dụ : - ở sheet 0 thuốc nhỏ mắt Natri Clorid 0,9 % mã VD-22949-15 số lượng là 20 lọ, sheet 1 là 10 lọ (2 cái này cũng mã giống nhau)
- Sheet 0 có thuốc A mã 9999 số lượng 10 viên , sheet 1 có thuốc B mã 8888 số lượng 20 viên ( 2 thuốc 2 mã khác nhau)
Bây giờ em muốn gộp 2 sheet thành 1
Khi đó sheet tổng: - thuốc nhỏ mắt Natri Clorid 0,9 % mã VD-22949-15 số lượng sẽ là 30 lọ
- thuốc A mã 9999 số lượng vẫn là 10v, thuốc B mã 8888 số lượng vẫn là 20 viên.
Tóm tắt là em muốn gộp 2 hoặc nhiều sheet và thành 1, mã nào giống nhau thì nó cộng tổng vào , mã nào khác nó sẽ giữ nguyên.
Cách diễn đạt của em hơi kém, mong mọi người thông cảm![]()
Cách diễn đạt của em hơi kém, mong mọi người thông cảm![]()
Ca này có vẻ hơi khó ạ![]()
Cách diễn đạt của em hơi kém, mong mọi người thông cảm![]()

Làm liều một phenTrong mỗi sheet là 1 cơ sở sử dụng thuốc, có loại thuốc thì giống, có loại lại khác nhau.
Ví dụ : - ở sheet 0 thuốc nhỏ mắt Natri Clorid 0,9 % mã VD-22949-15 số lượng là 20 lọ, sheet 1 là 10 lọ (2 cái này cũng mã giống nhau)
- Sheet 0 có thuốc A mã 9999 số lượng 10 viên , sheet 1 có thuốc B mã 8888 số lượng 20 viên ( 2 thuốc 2 mã khác nhau)
Bây giờ em muốn gộp 2 sheet thành 1
Khi đó sheet tổng: - thuốc nhỏ mắt Natri Clorid 0,9 % mã VD-22949-15 số lượng sẽ là 30 lọ
- thuốc A mã 9999 số lượng vẫn là 10v, thuốc B mã 8888 số lượng vẫn là 20 viên.
Tóm tắt là em muốn gộp 2 hoặc nhiều sheet và thành 1, mã nào giống nhau thì nó cộng tổng vào , mã nào khác nó sẽ giữ nguyên.
Cách diễn đạt của em hơi kém, mong mọi người thông cảm![]()
Sub VN8888()
Dim Ws As Worksheet, Sarr, Res
Dim i As Long, j As Long, Tmp
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
For Each Ws In Worksheets
If Ws.Name <> "TH" Then
Sarr = Ws.Range("A7").CurrentRegion
For i = 5 To UBound(Sarr)
Tmp = ""
If Sarr(i, 3) <> "" Then
For j = 3 To 8
Tmp = Tmp & IIf(Tmp = "", "", "#") & Sarr(i, j)
Next j
Tmp = Trim(Tmp)
If Dic.Exists(Tmp) = False Then
Dic.Add Tmp, Array(Sarr(i, 9), Sarr(i, 10), Sarr(i, 11))
Else
Res = Dic.Item(Tmp)
Res(0) = Res(0) + Sarr(i, 9)
Res(1) = Res(1) + Sarr(i, 10)
Dic.Item(Tmp) = Res
End If
End If
Next i
End If
Next Ws
Tmp = Dic.keys
ReDim Res(1 To Dic.Count, 1 To 9)
For i = 0 To UBound(Tmp)
Res(i + 1, 7) = Dic.Item(Tmp(i))(0)
Res(i + 1, 8) = Dic.Item(Tmp(i))(1)
Res(i + 1, 9) = Dic.Item(Tmp(i))(2)
Tmp(i) = Split(Tmp(i), "#")
For j = 0 To UBound(Tmp(i))
Res(i + 1, j + 1) = Tmp(i)(j)
Next j
Next i
With Sheets("TH")
.UsedRange.ClearContents
Sheet1.Range("C7:K8").Copy .Range("A1")
.Range("A3").Resize(UBound(Res), UBound(Res, 2)) = Res
.UsedRange.Borders.LineStyle = 1
.UsedRange.Columns.AutoFit
End With
Set Dic = Nothing
End Sub