반응형
Excel VBA - 범위전치 페이스트 복사
의 도움말 메뉴를 팔로우하고 있습니다.PasteSpecial에러 없이 코드를 사용할 수 없는 것 같습니다.
가져가고 싶다Worksheets("Sheet1").Range("A1","A5")전치하여 붙여넣기Worksheets("Sheet2").Range("A1","E1").
이를 실현하는 가장 간단한 방법은 무엇입니까?
Worksheets("Sheet1").Range("A1:A5").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
클립보드를 사용하지 않는 효율적인 옵션이 있습니다.
Sub transposeAndPasteRow(rowToCopy As Range, pasteTarget As Range)
pasteTarget.Resize(rowToCopy.Columns.Count) = Application.WorksheetFunction.Transpose(rowToCopy.Value)
End Sub
이렇게 쓰세요.
Sub test()
Call transposeAndPasteRow(Worksheets("Sheet1").Range("A1:A5"), Worksheets("Sheet2").Range("A1"))
End Sub
워크시트 함수 전치()
Paste Special을 통해 복사, 붙여넣기 및Transpose수식을 입력하기만 하면 됩니다.
=TRANSPOSE(Sheet1!A1:A5)
또는 VBA를 원하는 경우:
Dim v
v = WorksheetFunction.Transpose(Sheet1.Range("A1:A5"))
Sheet2.Range("A1").Resize(1, UBound(v)) = v
참고: 대신 late-bound를 사용할 수도 있습니다.
MS 도움말 레퍼런스에서는 현재 버전의 Microsoft 365를 사용하고 있는 경우, 타겟 범위의 왼쪽 상단 셀에 수식을 입력하기만 하면 됩니다.수식을 확인하려면 Ctrl+Shift+Enter를 사용하여 레거시 배열 수식으로 입력해야 합니다.
Excel 버전2007+, 2011년 이후 Mac, Microsoft 365용 Excel
언급URL : https://stackoverflow.com/questions/8852717/excel-vba-range-copy-transpose-paste
반응형
'source' 카테고리의 다른 글
| Windows 재귀 GREP 명령줄 (0) | 2023.04.22 |
|---|---|
| 환경변수를 인쇄/반향하는 방법 (0) | 2023.04.22 |
| XAML에서의 TimeSpan 포맷 방법 (0) | 2023.04.22 |
| 선택한 ListBox 항목의 배경색 변경 (0) | 2023.04.22 |
| ICommand MVVM 구현 (0) | 2023.04.22 |