Microsoft Excel에서 VBA를 사용하여 데이터베이스 시트로를 ActiveCell 행에서 셀을 복사
Microsoft Excel에서는 activecell 행의 셀을 특정 시트로 복사 할 수 있습니다. 이 기사에서는 VBA 코드를 사용하여 모든 시트의 데이터를 전송하고 데이터를 하나의 워크 시트로 병합합니다. 통합 문서에 마스터 시트를 추가하고 지정된 범위의 데이터를 하나의 시트에 저장합니다 .
_ 예제 코드는 Sheet2라는 이름의 데이터베이스 시트에 복사됩니다.
매크로를 실행할 때마다 셀은 sheet2의 마지막 열 뒤에 데이터가있는 마지막 행 아래에 배치됩니다. 이 매크로는 ActiveCell에서 A, D 열의 셀을 복사합니다 ._
다음은 샘플 데이터의 이미지입니다.
activecell 행에서 Sheet2로 셀을 복사하려면; VB 편집기를 시작하려면 아래 단계를 따라야합니다.
개발자 탭을 클릭하십시오. 코드 그룹에서 Visual Basic을 선택하십시오
===
-
삽입을 클릭 한 다음 모듈
그러면 새 모듈이 생성됩니다. 표준 모듈에 다음 코드를 입력하세요
Sub CopyCells() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") Set destrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") With sourceRange Set destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub
Function LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function
Function Lastcol(sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function
===
위의 VBA 코드를 확인하려면 “A1 : D1″범위에 데이터를 추가 한 다음 F5 단축키를 눌러 매크로를 실행합니다. 지정된 범위에 저장된 데이터는 A1부터 시작하여 “Sheet2″에 복사됩니다.
-
이 매크로를 다시 실행하면; 데이터는 다음 행에 저장됩니다. 아래 이미지를 참조하십시오 :
위의 매크로에서 요구 사항에 맞게 범위를 변경할 수 있습니다. 결론 : * 위의 매크로를 사용하면 VBA 코드를 사용하여 활성 셀 행에서 새 시트로 셀을 복사 할 수 있습니다.
_ 블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._
_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요