ここに私は下書きを持っていますが、それはまた、 "要約"と "概要"のシートをオートフィルタします。したがって、それらは宛先wbに2回コピーされます。
サブSplitWB() Application.EnableEvents = Falseの:Application.ScreenUpdating = Falseの:エラー後藤クリーンアップでApplication.DisplayAlerts = Trueの
Dim ws As Worksheet, wb As Workbook, team
For Each team In getTeams
Set wb = Workbooks.Add ' create a wb for each team with same # of sheets
Do Until wb.Worksheets.Count >= ThisWorkbook.Worksheets.Count
wb.Worksheets.Add After:=wb.Sheets(wb.Sheets.Count)
Loop
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Overview" And ws.Name <> "Summary" Then
With ws.UsedRange
.AutoFilter 1, team ' filter to copy only the team's rows
.Copy wb.Sheets(ws.Index).Range("A1")
.AutoFilter
End With
End If
wb.Sheets(ws.Index).Name = ws.Name
Next
ThisWorkbook.Worksheets("Summary").Copy After:=wb.Sheets(wb.Sheets.Count)
ThisWorkbook.Worksheets( "概要")後にコピーします。 = wb.Sheets(wb.Sheets.Count) wb.SaveAs "プロジェクト予算の追跡" &チーム& "の.xlsx"
wb.Close False
Next
クリーンアップ: Application.EnableEvents =真:Application.ScreenUpdating = Trueの:Application.DisplayAlerts = Trueの End Subの
機能getTeams() 'レンジ、オブジェクト セット辞書として辞書として辞書 薄暗いセル画を使用して独自のチーム名を取得します= "CreateObject(" Scripting.Dictionary ") With ThisWorkbook.Sheets(" Sheet1 ") 各セルごとに.Range(" A2:A "&.Cells(.Rows.Count、" A ")。End(xlUp) .Row) もし getTeamsの=のdict.Keys エンド機能付レン(トリム(cel.Value2))> 0その後のdict(cel.Value2)= 0 次 エンド
こんにちは、Welcome to Stackoverflow。これはコード作成ウェブサイトではありません。私たちは、あなたのコードであなたが持っている問題は手伝っていますが、コードを実際に書くのではありません。 – Zac
こんにちは、私はそれを簡単にするための手順を理解できません。誰でも、提案付き? – CCP3