2013-07-15 1 views
-1

내가 갖고있는 것 : 많은 테이블에 많은 데이터가 있습니다. 느슨하게 말하자면, 실제 테이블이 아닌 하나의 테이블에 두 개의 데이터가 있습니다. 두 개의 테이블 사이에 두 개의 열이 있습니다. 이 "표"는 모두 개의 열이이고 열이 이고 열이 개임을 나타냅니다. 테이블은 A1 셀에서 시작합니다. 예를 들어 첫 번째 테이블은 열 A에서 F까지, 두 번째 테이블에서 열까지 N을 차지합니다.Excel에서 가로로 나누어 진 세로 방향 데이터를 통합하는 방법은 무엇입니까?

내가 필요한 것 : 추가 분석을 위해 통계 소프트웨어로 내보낼 수있는 데이터베이스를 만들려면이 모든 테이블을 아래에 놓아야합니다. 필요한 스크립트는 두 번째 테이블을 가져 와서 첫 번째 테이블 바로 아래에 잘라내어 (또는 복사하여) 두 테이블 사이에 빈 줄없이 붙여 넣어야합니다. 그런 다음 세 번째로 진행하여 두 번째 아래에 붙여 넣습니다.

나는 VBA와 함께 일한 적이 없지만 수작업으로 처리하는 데 며칠이 걸릴 것이므로이 프로세스를 자동화하는 데 필요한 것이 있습니다. 나는 C++과 R로 프로그램을 작성 했으므로, 몇 가지 지침을 줄 수 있다면 VBA 스크립트에 함께 넣어 볼 수있다.

대단히 감사합니다. 그것이 내가이 생각이 end

같은 완료 코드를 쓴 다음이 하나

reproduced table

처럼 보이는 있도록

+0

테이블 헤더는 어떨까요? –

+1

문제를 해결하는 데 도움이되는 코드와 지금까지 시도한 코드를 보여주세요. –

+0

사과 드리겠습니다. 코드가 완전히 생겼습니다. 'vba'에 완전히 익숙하지 않아도 좋았습니다. 걸릴 방향. 그러나 나는 그걸 알아 내려고 노력할 것입니다. – Wilco

답변

1

나는 테이블을 당신이 heres는, 무엇을 찾고있다 재현 코드

Sub Main() 
    Dim ws As Worksheet 

    Set ws = Sheets("Sheet1") ' rename sheet 

    Dim i&, j& 
    Dim curHead As String 
    Dim nextHead As String 
    For i = 1 To 3 
     curHead = CStr(ws.Cells(1, i).Text) 
     For j = 4 to ws.Cells(1, Columns.Count).End(xlToLeft).Column 
      nextHead = CStr(ws.Cells(1, j).Value) 
      If StrComp(curHead, nextHead, vbTextCompare) = 0 Then 
       ws.Range(Cells(2, j), Cells(ws.Cells(Rows.Count, j).End(xlUp).Row, j)).Copy 
       ws.Cells(ws.Cells(Rows.Count, i).End(xlUp).Row + 1, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
      End If 
     Next j 
    Next i 
End Sub 
+0

그것은 나를 던졌습니다 "런타임 오류 '9': 아래 첨자 범위를 벗어났습니다" – Wilco

+0

당신의 시트 이름이 무엇이든간에 'Sheet1'을 변경 했습니까? 코드에 다음과 같은 내용의 주석이 있습니다. –

+0

죄송합니다. :) – Wilco

관련 문제