두 시트 사이에서 선택한 데이터 행을 복사하기 위해 Excel 매크로를 작성하는 방법은 무엇입니까?


-1

나는 전체 VBA 영역에서 실제로 경험하지 못했습니다. 매크로가 작동하는 방식을 알 수 있지만 이것은 내 범위를 벗어납니다. 기본적으로 제목에 명시된 것처럼 선택한 행이나 셀을 한 시트에서 다른 시트로 복사하는 매크로를 작성해야합니다.

예 : 첫 번째 시트에는 일부 데이터가 포함 된 테이블이 있습니다. 사용자는 행 또는 원하는 셀을 선택하고 키 바로 가기를 통해 매크로를 실행하고 선택한 데이터를 시트 2에 매크로 복사하여 원하는 행에 붙여 넣습니다 (22 행으로 만듭니다). 또한 22 행 (A : 22)에 데이터가 있으면 다음 행 (23)에 데이터를 붙여 넣습니다.

나는 그것을 충분히 분명히하기를 바랍니다.

힌트 나 도움을 주셔서 감사합니다.


지금까지 무엇을 얻었습니까? 어디에 붙어 있습니까?
Ƭᴇcʜιᴇ007

1
그냥 생각했지만 매크로 레코더를 사용해 보셨습니까? 녹음을 시작하고이 단계를 수행 할 수 있습니다. 그런 다음 녹화를 중지하고 매크로로 저장할 수 있습니다. 그런 다음이 매크로를 편집하고 이러한 명령이 어떻게 기록되는지 확인할 수 있습니다. 아마도 명령을 조정해야하지만 VBA 작동 방식에 대한 좋은 아이디어를 얻을 수 있습니다.
Rik

답변:


0

개발자-> Visual Basic에서 다음을 새 모듈에 넣으십시오.

Sub CopySelection()
  Dim xlSel As Excel.Range
  Set xlSel = Excel.Application.Selection

  xlSel.Copy Excel.Application.Sheets("Sheet2").Range("A1")
End Sub

그런 다음 개발자-> 매크로에서 하위를 선택하고 옵션을 클릭 한 후 키를 지정하십시오.


알았어요, 매력처럼 작동합니다. 감사! 지금 나는 궁금했다. 원하는 행이 가득 찬 경우 다음 행에 붙여 넣을 수 있습니까? 나는 여기 SU에 대한 답변 중 일부를 갔으며이 라인을 따라 무언가가 작동 할 수 있다고 생각합니다 (그러나 그렇지 않습니다) Sub CopySelection() Dim xlSel As Excel.Range Set xlSel = Excel.Application.Selection Set Rng = Sheet2.Range("A1") If IsEmpty(Rng) Then xlSel.Copy Excel.Aplication.Sheets("Sheet2").Range("A1") Else xlSel.Copy Excel.Aplication.Sheets("Sheet2").Range("A2") End If End Sub
탈출.

기존의 모든 행 다음에 사용 가능한 다음 행에 추가하려면을 사용할 수 있습니다 xlSel.Copy Excel.Application.Cells(Excel.Application.Cells.SpecialCells(xlCellTypeLastCell).Row + 1, 1).
DarkMoon

죄송합니다. 당신이 저를 올바르게 이해했다고 생각하지 않습니다. PITA가되어 죄송합니다. 제가하려는 것은 다음과 같습니다. 게시 한 매크로에 기능을 추가하여 IF A : 22가 비어 있는지 확인하십시오. 참이면 붙여 넣기, 그렇지 않으면 A : 23으로 이동하여 붙여 넣기. A : 23이 가득 찼을 경우. 이걸로 갈 곳을 찾으십시오.
탈출.

그것은 원래 답변의 사본을 대체하기위한 것입니다. A1에 복사하는 대신 데이터가있는 마지막 셀 아래의 1 행에있는 셀에 복사합니다 (열 1). 빈 셀이 어딘가에있을 수 있기 때문에 작동하지 않으면 Dim row as Integer row = 22 '빈 셀을 확인하기위한 시작 행입니다. Excel.Application.Cells (row, 1) .Value <> ""row = row + 1 Loop xlSel.Copy Excel.Application.Sheets ( "Sheet2"). Cells (row, 1) 지금 Windows PC 앞에 있지는 않지만 제대로 작동합니다.
DarkMoon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.