charactor5566
Thành viên mới
- Tham gia
- 7/1/23
- Bài viết
- 37
- Được thích
- 3
Bạn tự thêm phần xóa các sheet con trước khi chạy code nhé.Em chào anh/chị
Em có sheet tổng hợp dữ liệu. Bây giờ em muốn tách thành các sheet nhỏ theo mã hàng. Mong anh/chị giúp đỡ ạ. Em cảm ơn.
Option Explicit
Sub ABC()
Dim Dic As Object, Rng As Range, sArr(), i&
Set Dic = CreateObject("Scripting.dictionary")
With Sheets("TONG")
Set Rng = .Range("B2:C" & .Range("B" & Rows.Count).End(3).Row)
sArr = Rng.Value
For i = 2 To UBound(sArr)
If Dic.exists(Split(sArr(i, 1), "-")(0)) = False Then
Dic.Add Split(sArr(i, 1), "-")(0), ""
Sheets.Add after:=Sheets(Sheets.Count)
Rng.AutoFilter 1, Split(sArr(i, 1), "-")(0) & "-*"
Rng.Copy ActiveSheet.Range("B2")
ActiveSheet.Name = Split(sArr(i, 1), "-")(0)
End If
Next
If .AutoFilterMode = True Then .AutoFilterMode = False
End With
End Sub
Code này nếu thêm mã MI... thì sẽ thừa.Bạn tự thêm phần xóa các sheet con trước khi chạy code nhé.
Mã:Option Explicit Sub ABC() Dim Dic As Object, Rng As Range, sArr(), i& Set Dic = CreateObject("Scripting.dictionary") With Sheets("TONG") Set Rng = .Range("B2:C" & .Range("B" & Rows.Count).End(3).Row) sArr = Rng.Value For i = 2 To UBound(sArr) If Dic.exists(Split(sArr(i, 1), "-")(0)) = False Then Dic.Add Split(sArr(i, 1), "-")(0), "" Sheets.Add after:=Sheets(Sheets.Count) Rng.AutoFilter 1, Split(sArr(i, 1), "-")(0) & "*" Rng.Copy ActiveSheet.Range("B2") ActiveSheet.Name = Split(sArr(i, 1), "-")(0) End If Next If .AutoFilterMode = True Then .AutoFilterMode = False End With End Sub
Ý anh là chẳng hạn nó là MI1-01 chẳng hạn ấy ạ?Code này nếu thêm mã MI... thì sẽ thừa.
Tôi nghĩ làm thế này nhanh hơn, khỏi phải đit sần, filter:Bạn tự thêm phần xóa các sheet con trước khi chạy code nhé.
Mã:Option Explicit Sub ABC() ... End Sub
Thiết kế các table, sau đó tạo data model, rồi dùng Power pivot, power bi để phân tích. Code VBA chỉ có giá trị cho một câu hỏi cụ thể, nó không thể tùy biến nhanh hay cho biết các gợi ý giải quyết vấn đề.Em chào anh/chị
Em có sheet tổng hợp dữ liệu. Bây giờ em muốn tách thành các sheet nhỏ theo mã hàng. Mong anh/chị giúp đỡ ạ. Em cảm ơn.
Kinh nghiệm nhiều năm với gPE cho tôi biết 99% ngwoif hỏi bài chỉ muốn tiện dụng bấm một nút là ra theo ý muốn. Bất cú bạn ra phuonwg án nào khác thì người ta vẫn có thể đưa lại cớ để viện rằng truonwgf hợp của mình đăc thù đến nổi khong giải quyết ddwonwgf bằng ddwonwgf lối thông thường. (uy rằng đa số cũng chả hiểu chính đề bài của mình, nhưng cái thói quen viện cớ khong bao giờ bỏ.Thiết kế các table, sau đó tạo data model, rồi dùng Power pivot, power bi để phân tích. Code VBA chỉ có giá trị cho một câu hỏi cụ thể, nó không thể tùy biến nhanh hay cho biết các gợi ý giải quyết vấn đề.