필터를 걸어 시트마다 전기하는 매크로 그 2
"시트와 일치하는 항목을 필터로 추출하고 가시 셀로 복사"
매크로는 매크로 시트의 세 번째 행의 셀을 참조하여 시트를 생성하도록 수정되었습니다.
아래 그림과 같은 느낌입니다.
매크로 사용 전
매크로 사용 후
Sub buntatu02()
' 1つ目・2つ目のシートを指定
Dim makuroWs As Worksheet
Set makuroWs = Worksheets(1)
Dim bunkatumaeWs As Worksheet
Set bunkatumaeWs = Worksheets(2)
' 3行目の一番右のセルを指定
Dim maxSheetCount As Long
maxSheetCount = makuroWs.Cells(3, Columns.Count).End(xlToLeft).Column
' セルを参照して3つ目以降のシートを作る
Dim j As Long
For j = 1 To maxSheetCount - 1
Worksheets.Add After:=Sheets(1 + j)
Dim newWs As Worksheet
Set newWs = Worksheets(2 + j)
Dim group As String
group = makuroWs.Cells(3, 1 + j)
newWs.Name = group
Next j
' シート名を参照してフィルターで抽出し可視セルでコピペ
Dim i As Long
For i = 3 To Worksheets.Count
Dim wsName As String
wsName = Worksheets(i).Name
With bunkatumaeWs.Range("A1")
.AutoFilter Field:=5, Criteria1:=wsName
.CurrentRegion.SpecialCells(xlVisible).Copy Worksheets(i).Range("A1")
.AutoFilter
End With
Next i
' 1つ目のシートのセルA1をアクティブにしてブックを閉じないで保存する
makuroWs.Activate
Range("A1").Activate
ThisWorkbook.Save
End Sub
매크로로 시트를 수작업으로 만들 필요가 없어지면, 대부분의 범용성이 높아지는 생각이 듭니다!
아래의 코드로 셀을 참조하여 새로운 시트를 만들 수 있으므로 다른 장면에서도 꽤 살릴 것 같습니다.
' シートを追加していく(jは整数)
Worksheets.Add After:=Sheets(1 + j)
' 作ったシートに名前を付ける
group = makuroWs.Cells(3, 1 + j)
newWs.Name = group
다음 번에
추출하는 열의 항목을 자동으로 검출해 시트의 작성~가시 셀로 copipe 할 수 있도록 개수하고 싶습니다.
Reference
이 문제에 관하여(필터를 걸어 시트마다 전기하는 매크로 그 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m_kudou/items/38cb0f4d10558f2b5918텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)