수식을 손상시키지 않고 붙여 넣는 매크로


0

마스터 시트에 수식을 유지하면서 다른 시트의 데이터를 마스터 시트에 붙여 넣을 수있는 방법이 있습니까? 그래서 본질적으로 필자의 매크로는 마스터 스프레드 시트의 형식과 수식을 유지하면서 텍스트를 붙여 넣기를 원합니다. 또한 마스터에 붙여 넣은 후 일일 스프레드 시트에서 복사 할 데이터를 삭제하려고합니다. 여기 내 매크로가있다.

Sub macro ()

Workbooks.Open Filename:= _
        ("I:\Master Copy.xlsm"), Password:="nm"

Dim lNewRow As Long
Dim lDataRow As Long

Windows("Master Copy").Activate
ActiveSheet.Unprotect Password = "nm"
    Windows("Daily Worksheet").Activate
    '1. Find last used row in both sheets
    lNewRow = Workbooks("Daily Worksheet").Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, "A").End(xlUp).Row
  Windows("Master Copy").Activate
    lDataRow = Workbooks("Master Copy").Worksheets("Submission Log").Cells(Worksheets("Submission Log").Rows.Count, 1).End(xlUp).Row
    lDataRow = lDataRow + 1
    '2. Copy data
    Workbooks("Daily Worksheet").Worksheets("Sheet1").Range("A2:R" & lNewRow).Copy
    '3. Paste data
    Worksheets("Submission Log").Range("A" & lDataRow).PasteSpecial

    Application.CutCopyMode = False
    Selection.ClearContents

  Windows("Master Copy").Activate

ActiveSheet.Protect Password = "nm"


End Sub

전체 범위를 복사하여 붙여 넣는 경우 해당 범위에 수식과 상수가 포함되어 있으면 상수를 붙여 넣을 수만 있고 수식을 덮어 쓸 수는 없습니다. 상수가있는 셀만 복사하여 붙여 넣기해야합니다. 접근 방식을 변경하십시오.
teylyn

범위를 변경했지만 특정 열의 서식을 유지하려고합니다. 열에 데이터 유효성 검사가 있는데 데이터를 붙여 넣을 수 있습니까?
Josh W

값만 붙여 넣을 수는 있지만 전체 범위에 적용됩니다. 범위에 수식이 포함되어 있으면 해당 값이 수식에 붙여 넣어집니다. 값만 붙여 넣으면 데이터 유효성 검사 및 형식이 변경되지 않습니다. 또한 데이터 유효성 검사 만 붙여 넣거나 서식을 붙여 넣을 수도 있습니다. 문서를 보시지 않으시겠습니까? !! 그것이 바로 그 때문입니다.
teylyn

고마워, 붙여 넣기 텍스트 만 작성하고 붙여 넣은 텍스트의 서식을 다시 지정하는 다른 코드를 추가했습니다. 설명서가 무엇입니까?
Josh W

답변:


0

한 줄의 코드로 묻고있는 것을 할 수는 없습니다.

각 열에있는 것이 대체로 두 시트간에 호환된다고 가정합니다 (그렇지 않으면 한 시트에서 다른 시트로 전체 범위를 복사하려고하지 않을 것입니다).

다음과 같은 한 가지 방법이 있습니다.

  1. 현재 범위 전체를 대상 시트에 복사하지만 텍스트 만 붙여 넣습니다. 이렇게하면 대상 시트의 서식이 유지되지만 보관할 수식을 덮어 씁니다.
  2. 대상 시트에서 위의 행에서 유지하려는 수식을 새로 붙여 넣은 행에 복사합니다. Excel에서 수식의 상대 참조를 자동으로 업데이트합니다. 수식이 들어있는 인접한 셀 그룹마다이 작업을 수행해야합니다.

확실히 다른 방법이 있지만, 모두 VBA 코드가 다르게 취급해야하는 셀의 참조 (또는 찾는 방법)를 "알아야"합니다. 단일 작업에서 단일 범위에 필요한 여러 가지 고유 한 복사 유형을 수행하는 기본 제공 기능은 없습니다. 우리는 이런 일 때문에 VBA를 가지고 있습니다!


소스 시트에서 데이터를 삭제하는 것에 관해서는, 당신이 찾고있는 것이 . 명백한 내용 방법.


나는 이것과 비슷한 것을했다. 감사
Josh W
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.