เขียนVBA:การกระจายข้อมูลdataตามsheetที่เป็นชื่อร้านvendorนั้นๆ
Posted: Thu Jan 19, 2023 2:30 am
ผมอยากจะกระจายข้อมูลที่เกี่ยวกับชิ้นงานโดยจะแบบตามประเภทvendorแต่ละที่ครับ โดยvendorแต่ละที่จะมีsheetอยู่และในsheetนั้นจะมีข้อมูลของชิ้นงานประจำvendorนั้นๆ
อันนี้เป็นโค้ดที่ผมลองแล้วพบปัญหาที่" s.Name = r.Value" ขึ้นว่า Method 'name' of object '_Workbook' failed" (1004) ครับ
ผมเลยอยากได้โค้ดที่สามารถกระจายข้อมูลที่เกี่ยวกับชิ้นงานโดยจะแบบตามประเภทvendorแต่ละที่และตั้งชื่อSheetเป็นชื่อvendorนั้นๆครับ
Code: Select all
Sub vencollect()
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 Then
s.Delete
End If
Next s
With Sheets(1)
For Each r In .Range("c2", .Range("c" & .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("z1").Value = "Vendor"
s.Range("z2").Value = r.Value
.UsedRange.AdvancedFilter xlFilterCopy, _
s.Range("z1:z2"), s.Range("a1")
s.Range("z1:z2").Clear
End If
Next r
End With
Application.DisplayAlerts = True
MsgBox "Finish", vbInformation
End Sub
ผมเลยอยากได้โค้ดที่สามารถกระจายข้อมูลที่เกี่ยวกับชิ้นงานโดยจะแบบตามประเภทvendorแต่ละที่และตั้งชื่อSheetเป็นชื่อvendorนั้นๆครับ