bestsource

엑셀에서 VBA로 한 시트에서 다른 시트로 열을 복사하려면 어떻게 해야 합니까?

bestsource 2023. 6. 8. 21:13
반응형

엑셀에서 VBA로 한 시트에서 다른 시트로 열을 복사하려면 어떻게 해야 합니까?

1열의 내용을 1번 시트에서 2번 시트로 복사하는 매크로를 작성하려고 합니다.모듈은 이렇게 생겼지만, 실행해보면,

실행 시간 오류 9, 구독이 범위를 벗어났습니다.

Sub OneCell()
    Sheets("Sheet1").Select
    'select column 1 A1'
    Range("A1:A3").Select

    Selection.Copy
    Range("B1:B3").Select

    ActiveSheet.Paste

    Sheets("Sheet2").Select
    Application.CutCopyMode = False
End Sub

다음은 Excel 2007에서 잘 작동합니다.이 기능은 단순하며 전체 복사본을 수행합니다(모든 형식 유지 등).

Sheets("Sheet1").Columns(1).Copy Destination:=Sheets("Sheet2").Columns(2)

"Columns"는 Range 객체를 반환하므로 "Range"를 사용합니다.복사" 방법입니다."대상"은 이 메서드의 옵션입니다. 기본값은 붙여넣기 버퍼에 복사하는 것입니다.그러나 제공된 경우 복사하기 쉬운 방법입니다.

Excel에서 항목을 수동으로 복사할 때와 마찬가지로 대상의 크기와 지오메트리가 복사 중인 범위를 지원해야 합니다.

선택할 필요가 없는 경우가 많습니다.사용해 보세요.

Sub OneCell()
    Sheets("Sheet2").range("B1:B3").value = Sheets("Sheet1").range("A1:A3").value
End Sub

병합된 셀이 있는 경우

Sub OneCell()
    Sheets("Sheet2").range("B1:B3").value = Sheets("Sheet1").range("A1:A3").value
End Sub

이것은 셀을 있는 그대로 복사하지 않습니다. 이전 코드는 모양 그대로 복사합니다(아래 참조).

당신의 시트가 실제로 호출되지 않았다면 왜 당신이 범위를 벗어난 구독자를 얻었는지 모르겠습니다.Sheet1또는Sheet2이름을 변경할 때Sheet2로.Sheet_2저도 같은 문제를 겪고 있습니다.

또한 일부 코드가 잘못된 것 같습니다(두 번째 시트를 선택하기 전에 붙여넣습니다).이 코드는 저에게 잘 맞습니다.

Sub OneCell()
    Sheets("Sheet1").Select
    Range("A1:A3").Copy
    Sheets("Sheet2").Select
    Range("b1:b3").Select
    ActiveSheet.Paste
End Sub

시트의 이름을 알고 싶지 않은 경우 다음과 같이 정수 인덱스를 사용할 수 있습니다.

Sub OneCell()
    Sheets(1).Select
    Range("A1:A3").Copy
    Sheets(2).Select
    Range("b1:b3").Select
    ActiveSheet.Paste
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, r As Range
  Set rng = Intersect(Target, Range("a2:a" & Rows.Count))
  If rng Is Nothing Then Exit Sub
    For Each r In rng
      If Not IsEmpty(r.Value) Then
        r.Copy Destination:=Sheets("sheet2").Range("a2")
      End If
    Next
  Set rng = Nothing
End Sub

언급URL : https://stackoverflow.com/questions/1990620/how-can-i-copy-columns-from-one-sheet-to-another-with-vba-in-excel

반응형