본문 바로가기

엑셀

엑셀 시트 한번에 여러개 신규, 복사 해서 만드는 매크로( 신규 생성, 복사 생성)

728x90

엑셀로 작업을 하다보면 한번에 많은 시트를 새로 만들거나, 기존 시트를 여러개 복사해야 할 때가 있습니다. 그 때 사용하는 매크로입니다.

첫번째는 새로 여러개의 시트를 한 번에 생성하는 매크로

1. 생성할 시트 이름을 미리 아래와 같이 입력 한 다음,2. 시트 일괄 생성을 클릭하여, 입력해 둔 셀들을 선택한 다음 확인을 클릭하면 새로운 시트가 일괄 생성 됩니다.

 

시트 일괄생성.xlsm
0.02MB

Sub CreateSheets()
 
Dim rng As Range
Dim cell As Range
Dim str As String
 
On Error GoTo Errorhandling
 
'선택 박스
Set rng = Application.InputBox(Prompt:="시트 생성을 위한 레인지를 선택해주세요~!:", _
Title:="Create sheets", _
Default:=Selection.Address, Type:=8)
 
'선택 셀 For문
For Each cell In rng

    '비어있지 않은 셀
    If cell <> "" Then
    
       str = Format(cell, "mm월 dd일(aaa)")
          
      ' Sheet1 시트 다음에 목록에 따라 시트 삽입
       Sheets.Add(After:=Sheets("Sheet1")).Name = str
    End If
Next cell
 
'에러 핸들링
Errorhandling:
End Sub

 

두번째는 시트를 한번에 여러개 일괄 복사하는 매크로

1. 생성할 시트 이름을 미리 아래와 같이 입력 한 다음,

2. 시트 일괄 복사를 클릭 한 다음, 입력해 둔 셀들을 선택한 다음 확인을 클릭하면 시트가 일괄 복사 됩니다.

Sub copySheets()

Dim str As String
On Error GoTo Errorhandling
 
'선택 박스
Set rng = Application.InputBox(Prompt:="시트 생성을 위한 레인지를 선택해주세요~!:", _
Title:="Create sheets", _
Default:=Selection.Address, Type:=8)
 
'선택 셀 For문
For Each cell In rng

    '비어있지 않은 셀
    If cell <> "" Then
    
       str = cell.Value
       
       ActiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
       On Error Resume Next
       ActiveSheet.Name = str
        
      '.Name = k & "-" & rng.Value
      
        End If
Next cell
 
'에러 핸들링
Errorhandling:
End Sub

 

728x90