이 코드는 작은 조정과 함께 사용해야합니다. sColumn 상수를 제조업체 열로 업데이트하십시오.
Sub SplitListIntoWorksheets()
'split list into individual worksheets
Dim lLoop As Long, arrData As Variant
Dim shtData As Worksheet, lgCol As Long, rgSel As range
Dim cUnique As New Collection, shtDest As Worksheet
Const blTitles As Boolean = True 'true if the data has titles, false otherwise
Const sColumn As String = "A" 'Which column should the list be split on
application.ScreenUpdating = False
application.Calculation = xlCalculationManual
application.DisplayAlerts = False
lgCol = Cells(1, sColumn).Column
Set rgSel = Cells(1, 1).CurrentRegion
Set shtData = ActiveSheet
With shtData
'load the column into an array for faster processing
arrData = .range(.Cells(1, sColumn), .Cells(.Rows.Count, sColumn).End(xlUp)).Value
'load the array content in a collection, to keep individual values only
On Error Resume Next
For lLoop = LBound(arrData, 1) To UBound(arrData, 1)
cUnique.Add arrData(lLoop, 1), CStr(arrData(lLoop, 1))
Next
On Error GoTo 0
'for each individual value, filter the list, copy the results to a new worksheet
For lLoop = 1 To cUnique.Count
.AutoFilterMode = False
rgSel.CurrentRegion.AutoFilter Field:=lgCol - rgSel.CurrentRegion.Column + 1, Criteria1:=cUnique(lLoop)
Set shtDest = Sheets.Add
shtDest.Name = "Data " & cUnique(lLoop)
rgSel.CurrentRegion.Copy shtDest.Cells(1, 1)
Next
.AutoFilterMode = False
End With
application.ScreenUpdating = True 'reenable ScreenUpdating
application.Calculation = xlCalculationAutomatic
application.DisplayAlerts = True
End Sub
무엇을 시도해 봤습니까? 코드를 묻는 질문은 해결하려는 문제에 대한 최소한의 이해를 보여 주어야합니다. 시도한 해결책, 실패한 이유 및 예상되는 결과를 포함하십시오. 참고 항목 : [Stack Overflow question checklist] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –
안녕하세요 Siddharth - 다음을 시도했지만 제거 할 수 없습니다. @SiddharthRout을 중복합니다. – user3018807
죄송합니다. 아래를 참조하십시오. 서브 CreateSheetsFromAList() 희미한 MyCell으로 범위 MyRange으로 범위 설정 MyRange = 시트 ("모든 공급 업체 매트릭스"). 범위 ("E7") 설정 MyRange = 범위 (MyRange, MyRange.End (xlDown)) MyRange 에서 각 MyCell를 들어 Sheets.Add 후 : = 시트 (Sheets.Count)는 새 워크 시트 다음 MyCell 끝 하위 – user3018807