2017-02-15 5 views
1

다른 통합 문서 (지주 회사 및 자회사)간에 2 명의 학생 등록을 통합해야합니다. 따라서 "Generate Graphic"버튼을 클릭하면 데이터가 "Total"시트에 통합되고 코스 수 (Excel, Word, Access ...)가 계산되고 그래픽이 시트 "Graphic"에 생성됩니다. 첫 번째 테스트는 정상이지만 다시 클릭하면 자회사 통합 문서의 동일한 데이터로 목록이 증가하고 있습니다. 변경해야하는 코드에는 뭔가가 있지만 무엇이 있는지 모르겠습니다. 도와 주시겠습니까? 내 코드입니다 : "총"시트에서두 개의 다른 통합 문서간에 데이터를 통합하려면 어떻게해야합니까?

Sub GerarGrafico() 
Dim k As Long 

'copying data of the “Course Booking” Sheet 

Sheets("Course Booking").Select 
Range("A1").Select 
linini = 2 
'Select the last row 
Selection.End(xlDown).Select 
linfin = Selection.Row 
'Select the last column 
Selection.End(xlToRight).Select 
colfin = Selection.Column 
Range(Cells(linini, 1), Cells(linfin, colfin)).Select 
Selection.Copy 

'데이터를 복사

Sheets("Total").Select 
Cells(linini, 1).Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 

‘Copying data of the “reserva filial.xlsm” 
caminho = ThisWorkbook.Path 
Workbooks.Open caminho & "\" & "reserva filial.xlsm" 

'copying data 
Range("A1").Select 
linini2 = 2 
'Select the last row 
Selection.End(xlDown).Select 
linfin2 = Selection.Row 
'Select the last column 
Selection.End(xlToRight).Select 
colfin2 = Selection.Column 
Range(Cells(linini2, 1), Cells(linfin2, colfin2)).Select 
Selection.Copy 
Windows("Trabalho_Felipe Granado_v8.xlsm").Activate 
Sheets("Total").Select 

'Select the last row with value 
    Selection.End(xlDown).Select 
    k = ActiveCell.Row + 1 

Cells(k, 1).Activate 


Application.Windows("reserva filial.xlsm").Visible = False 

'pasting data "reserva filial.xlsm" in the sheet "Total" 

ActiveSheet.Paste 
Application.CutCopyMode = False 

    Columns.HorizontalAlignment = xlCenter 

답변

0
코드의이 부분은 시트

'Select the last row with value 
    Selection.End(xlDown).Select 
    k = ActiveCell.Row + 1 

Cells(k, 1).Activate 

에서 데이터의 끝을 탐색

그런 다음 "reserva filial.xlsm" 데이터를 붙여 넣습니다.

첫 번째 단계에서는 제대로 작동하지만 두 번째로 코드를 실행하면 첫 번째 통합 문서 데이터에 붙여 넣기, 두 번째 워크 북 데이터 베타 필드에서 빠져 나와 데이터의 끝으로 이동 한 다음 다시 붙여 넣기 두 번째 통합 문서 데이터.

Excel 프로젝트를 함께 사용하는 방법에 따라 .ClearContents 메서드를 사용하여 Sheets("Total") 또는이 파일의 하위 집합 전체 내용을 지울 수도 있습니다.

+0

감사합니다. 당신이 바로 내가 beggining에서이 코드를 넣었습니다 위치 :. 범위 설정 지역 = 시트 ("전체")로 희미한 영역을 셀 (2, 1) .CurrentRegion region.ClearContents 그리고 그것은 작동 벌금. 클릭 할 때마다 모두 지우고 현재 또는 새 학생 목록을 붙여 넣어야합니다. 다시 한 번 감사합니다. – Granado

+0

대단히 기쁩니다. 계속 사용해 주셔서 감사합니다. 잘 작동하는 순수한 VBA 코드 관점에서. 그러나 앞으로 Excel 프로젝트가 어떻게 발전 할 수 있을지 생각해보십시오. 만약 내가 정확히'.CurrentRegion'을 호출하면 빈 행과 빈 열을 칠 때까지 셀 주변의 모든 것을 선택합니다. 따라서 "Total"시트의 인접 열에 분석을 추가 한 경우 삭제됩니다. 그건 완전히 관련성이없는 사용자 사례 일 수 있습니다. 다른 모든 방법이 실패하면 빈 행/열을 남기라는 메모를 시트에 추가하면됩니다. –

0

Excel에서는 Ctrl + Shift + Down (화살표) 및 Ctrl + Shift + Right (화살표)로 작동합니다. 지금은 괜찮습니다. 목록으로 만 사용됩니다. 나는 너의 충고에 정말로 감사한다. 저는 새로운 VBA 및 스택 오버플로 사용자입니다.이 커뮤니티는 모든 기여로 인해 매우 유용합니다.