메뉴
해결 엑셀2024윈도우

한 시트 행추가시 모든 행들이 자동으로 행이 추가되고 수식도 같이 추가 되는 방법

카
9월 9일 조회 147

안녕하세요 각 시트 행마다 합계를 내는 수식이 걸려있는데 만약 2026년 9월 30일을 모두 기록하고 맨 첫행에 2026년 10월 1일 행을 추가하게 되면 수식도 추가해야 하고 모든 시트들을 이런식으로 하게 되면 시간이 너무 많이 걸릴것 같은데 한 시트의 행만 추가하면 다른 시트들도 모두 행이 추가되고 수식이 같이 딸려 오게 할 수 있는 방법이 있는지 궁금합니다.

댓글 3

원
원조백수 9월 9일

질문 이력 전체적으로 뭘 하시려는 것인지 설명해 보세요...

의도를 알면 적절한 답변이 가능할 것 같습니다.

쉼
쉼터지기 채택된 답변 9월 10일

매크로를 이용하여 만들었습니다.

1. 먼저 해당 파일을 매크로 포함 문서(*.xlsm)로 바꾸어 저장하세요.
2. Alt + F11을 입력하여 매크로 편집 화면을 여세요.
(삽입 메뉴에서 모듈 버튼을 눌러 편집 화면으로 진입하세요.)
3. 아래의 매크로 코드를 복사하여 편집 화면에 붙이세요.
4. 저장하신 후 Alt + F11을 눌러 엑셀 화면으로 돌아가세요.
5. 새 행을 추가하시려면 Alt + F8을 입력하여 매크로 화면을 불러 만들어진 매크로를 실행하세요.
6. 그러면 현재 날짜 플러스 1일을 추가하여 새로운 행이 자동으로 만들어집니다. 물론 서식과 수식도 포함되고요. 각 시트마다 열구성이 틀려도 아무튼 현재의 행 그대로, 숨긴 열도 다 마찬가지로 적용됐을 거예요.

Option Explicit

Public Sub 새날짜행추가()
Dim ws As Worksheet, tot As Worksheet
Dim lastCol As Long, newDate As Date
Dim calcSave As XlCalculation

Const TOTAL_SHEET As String = "시트 합계"

calcSave = Application.Calculation
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
On Error GoTo CleanUp

Set tot = ThisWorkbook.Worksheets(TOTAL_SHEET)
newDate = tot.Range("A2").Value + 1 ' 맨 위 날짜 + 1일

' 1) 개별 시트 먼저 처리 (합계시트 참조가 함께 밀리도록)
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> TOTAL_SHEET Then
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

ws.Rows(2).Insert Shift:=xlDown
ws.Range(ws.Cells(3, 1), ws.Cells(3, lastCol)).Copy _
Destination:=ws.Cells(2, 1) ' 수식·서식 복사

ws.Range("B2:P2").ClearContents ' 입력칸은 비움
ws.Range("A2").Value = newDate
ws.Range("A2").NumberFormat = "yyyy-mm-dd"
End If
Next ws

' 2) 합계 시트 처리
lastCol = tot.Cells(1, tot.Columns.Count).End(xlToLeft).Column
tot.Rows(2).Insert Shift:=xlDown
tot.Range(tot.Cells(3, 1), tot.Cells(3, lastCol)).Copy _
Destination:=tot.Cells(2, 1)
tot.Range("A2").Value = newDate
tot.Range("A2").NumberFormat = "yyyy-mm-dd"

CleanUp:
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.Calculation = calcSave
Application.CalculateFull
If Err.Number <> 0 Then MsgBox "오류: " & Err.Description, vbExclamation
End Sub

카
카카오떡 작성자 9월 10일

@쉼터지기 님 알려주신 방법으로 해결했습니다. 감사합니다.

질문답변 게시판의 최근 글

스크랩 완료