programing

새 행을 삽입할 때 수식을 다음 행에 복사

bestprogram 2023. 6. 11. 11:05

새 행을 삽입할 때 수식을 다음 행에 복사

같은 행의 값을 사용하는 공식이 있는 행이 있습니다.다른 배경색을 사용하여 다음 행이 비어 있습니다.

새 행을 삽입하면(빈 행을 마우스 오른쪽 버튼으로 클릭하고 "삽입") 배경색이 없는 새 행이 표시됩니다(원하는 대로). 그러나 줄에는 공식이 포함되어 있지 않습니다. 새 행을 만들 때 Excel을 더 스마트하게 만들고 이전 행의 공식을 복사하려면 어떻게 해야 합니까?

한 가지 정보가 더 있습니다. 새 행을 삽입할 때 데이터 유효성 검사 정보(즉, 드롭다운 목록)가 복사됩니다.

감사해요.

데이터와 공식이 있는 영역을 표로 만듭니다.

여기에 이미지 설명 입력

그런 다음 다음 줄에 새 정보를 추가하면 새 줄에 대해 해당 표의 모든 수식이 복사됩니다.데이터 유효성 검사는 전체 열과 마찬가지로 새 행에도 적용됩니다.이것은 Excel이 당신의 데이터에 대해 더 똑똑해지는 것입니다.

VBA가 필요하지 않습니다...

새 행을 삽입한 다음 원본 행에서 새로 삽입한 행으로 복사해야 합니다.Excel을 사용하면 특수 정의 공식을 붙여넣을 수 있습니다.Excel에서:

  • 새 행 삽입
  • 원본 행 복사
  • 새로 만든 대상 행을 선택하고 마우스 오른쪽 단추로 클릭하여 특수 붙여넣기
  • 수식으로 붙여넣기

행("1:1")이 소스이고 행("2:2")이 대상인 경우 VBA:

Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Clear

Rows("1:1").Copy
Rows("2:2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone

테이블 내 행 복사와 관련하여 발견한 또 다른 중요한 사항은 작업 중인 워크시트를 활성화해야 한다는 것입니다.여러 개의 시트가 있는 워크북이 있는 경우 매크로를 호출한 시트를 저장한 다음 테이블을 사용하여 시트를 활성화해야 합니다.완료되면 원래 시트를 다시 활성화할 수 있습니다.

응용프로그램을 사용할 수 있습니다.화면 업데이트 = 사용자가 매크로 내에서 워크시트를 전환하는 것을 사용자가 보지 못하도록 하려면 거짓입니다.

워크시트를 활성화하지 않은 경우 복사본이 제대로 작동하지 않는 것 같습니다. 즉, 어떤 항목은 작동하는 것 같고 다른 항목은 작동하지 않는 것 같습니다.

개인 하위 워크시트_변경(범위를 기준으로 밸브 대상 기준)

'data starts on row 3 which has the formulas
'the sheet is protected - input cells not locked - formula cells locked
'this routine is triggered on change of any cell on the worksheet so first check if
' it's a cell that we're interested in - and the row doesn't already have formulas
If Target.Column = 3 And Target.Row > 3 _
And Range("M" & Target.Row).Formula = "" Then

    On Error GoTo ERROR_OCCURRED

    'unprotect the sheet - otherwise can't copy and paste
    ActiveSheet.Unprotect
    'disable events - this prevents this routine from triggering again when
    'copy and paste below changes the cell values
    Application.EnableEvents = False

    'copy col D (with validation list) from row above to new row (not locked)
    Range("D" & Target.Row - 1).Copy
    Range("D" & Target.Row).PasteSpecial

    'copy col M to P (with formulas) from row above to new row
    Range("M" & Target.Row - 1 & ":P" & Target.Row - 1).Copy
    Range("M" & Target.Row).PasteSpecial

'오류 발생(또는 발생하지 않음) 이벤트가 다시 활성화되고 시트가 다시 보호되는지 확인합니다.

오류_발생:

    If Err.Number <> 0 Then
        MsgBox "An error occurred. Formulas may not have been copied." & vbCrLf & vbCrLf & _
            Err.Number & " - " & Err.Description
    End If

    're-enable events
    Application.EnableEvents = True
    're-protect the sheet
    ActiveSheet.Protect

    'put focus back on the next cell after routine was triggered
    Range("D" & Target.Row).Select

End If

끝 하위 항목

수식이 모두 포함된 행이 많은 워크시트의 경우 가장 쉬운 방법은 데이터가 없는 행을 복사한 다음 추가할 행 아래/위에 "복사된 셀 삽입"하는 것입니다.공식은 남아 있습니다.필요한 경우 데이터가 있는 행을 사용해도 좋습니다.붙여넣기 후 삭제하거나 덮어씁니다.

언급URL : https://stackoverflow.com/questions/13849629/copying-formula-to-the-next-row-when-inserting-a-new-row