กระจายชีทเดียวไปหลายๆชีทตามค่าใน column ที่กำหนด
Posted: Wed Oct 28, 2020 7:31 pm
จาก code ตามตัวอย่างคลิปนี้ https://www.youtube.com/watch?v=L7YlYoC ... Co&index=9 ได้ลองนำมาปรับใช้ โดยที่ sheet 1 เป็นข้อมูลที่ต้องการกระจายไปเป็น หลายๆ sheet ตาม column B คือ cost center (ถ้าตามไฟล์กระจายได้ 2 sheet คือ sheet In และ sheet out) และได้ลองเพิ่มข้อมูลด้านบนตารางที่ row1-row6 เข้าไป ต้องรบกวนปรับ code เพื่อให้ copy ข้อมูลด้านบนตางราง row1-row6 ไปได้ด้วยครับ ได้ทำตัวอย่างที่ต้องการไว้ที่ sheet in and sheet out แนบมาแล้วครับ
Code: Select all
Sub CreateShs()
Dim r As Range, d As Object, S As Worksheet
Set d = CreateObject("scripting.dictionary")
Application.DisplayAlerts = False
For Each S In Worksheets
If S.Name <> Sheets(1).Name And S.Name <> Sheets(2).Name Then 'ลบทุก sheet ยกเว้น sheet1 & sheet2
S.Delete
End If
Next S
With Sheets(1)
For Each r In .Range("b8", .Range("b" & .Rows.count).End(xlUp))
If Not d.exists(r.Value) Then
d.Add r.Value, r.Value
Set S = Worksheets.Add(after:=Worksheets(Sheets.count))
S.Name = r.Value
S.Range("AZ1").Value = "CC"
S.Range("AZ2").Value = r.Value
.UsedRange.AdvancedFilter xlFilterCopy, _
S.Range("AZ1:AZ2"), S.Range("A7")
S.Range("AZ1:AZ2").Clear
End If
Next r
End With
Sheets("Sheet1").Select
Range("b8").Select
Selection.AutoFilter
Selection.End(xlDown).Select
Application.DisplayAlerts = True
MsgBox "Finish", vbInformation
End Sub