Microsoft Excel에서 VBA를 사용하여 데이터베이스 시트를 하나의 영역으로 범위를 복사
-
예제 코드는 Sheet2라는 이름의 데이터베이스 시트에 복사됩니다.
-
subs 중 하나를 실행할 때마다 셀이 데이터가있는 마지막 행 아래 또는 sheet2의 데이터가있는 마지막 열 뒤에 배치됩니다.
-
각 예제에는 일반 복사를 수행하는 매크로와 값 복사 만 수행하는 매크로가 있습니다.
-
Example subs는 아래의 기능을 사용합니다 (매크로는 기능 없이는 작동하지 않습니다).
Sub CopyOneArea() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Range("A1:c10") Set destrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub Sub CopyOneAreaValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Range("A1:c10") 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