Ryan은 매일 3 교대마다 사용해야하는 Excel 워크 시트를 가지고 있습니다. 그는 각 교대조마다이 워크 시트를 매일 계속해서 복사합니다. Ryan에게는 한 달에 매일 마스터 워크 시트를 3 번 ​​복사 할 수있는 매크로가 있으면 워크 시트 이름을 “February 1 Shift 1”, “February 1 Shift 2”,

등. 그는 이와 같은 작업을 수행 할 수있는 매크로를 찾을 수 없으며 누구든지 도와 줄 수 있는지 궁금합니다.

이것은 실제로 매크로로 결합하는 데 그리 오래 걸리지 않습니다. 요령은 매크로가 원하는 달에 매일 마스터 워크 시트를 3 번 ​​복사해야한다는 점을 기억하는 것입니다. 이것은 또한 매크로가 한 달에 몇 일이 있는지 결정해야 함을 의미합니다. 이것이 알려지면 두 개의 중첩 된 For …​ Next 루프를 설정하여 실제 생성 프로세스를 처리 할 수 ​​있습니다.

Sub CopyShiftSheets()

Dim iDay As Integer     Dim iShift As Integer     Dim iNumDays As Integer     Dim wMaster As Worksheet     Dim sTemp As String

iMonth = 2     ' Set to month desired, 1-12     iCurYear = Year(Now())

iNumDays = Day(DateSerial(iCurYear, iMonth + 1, 0))



Set wMaster = Worksheets("Master") 'change to name of master

For iDay = 1 To iNumDays         For iShift = 1 To 3             sTemp = MonthName(iMonth) & " " & iDay & " Shift " & iShift             wMaster.Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = sTemp         Next iShift     Next iDay End Sub

원하는 월 (이 경우 2 월)이 iMonth 변수에 할당되고 iCurYear가 현재 연도로 설정됩니다. 그런 다음 해당 월과 연도의 일 수가 계산되어 iNumDays에 저장됩니다.

두 개의 For …​ Next 루프는 매일 및 각 교대를 거치며 마스터 워크 시트를 복사하고 이름을 바꿉니다. 완료되면 통합 문서에 올바른 이름의 원하는 워크 시트가 모두 포함됩니다. 그러나 같은 달에 매크로를 두 번 실행하지 않도록주의해야합니다.

그렇게하면 통합 문서에 이름이 중복 된 워크 시트가 있기 때문에 오류가 생성됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (13730)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.