2016-07-20 3 views
-1

Excel에서 재구성해야하는 데이터가 있습니다. (A1 셀에 "이름")Excel VBA - 여러 열의 데이터를 새 행으로 재구성

Sample Data

데이터는 셀 A1에서 시작하고 나도 "웹 사이트"다음에 다른 열이 : 저는 여기에 필요한 기본적입니다. 나는 누군가가 이것에 대한 완전한 해결책을 제공 할 수 있다면 고맙겠습니다.

감사합니다.

+1

은 그렇게 시도 무엇 메일 멀리? 시도한 방법/수식을 게시하십시오. 또한 "John Carter"의 이메일이 모두 동일하거나 항상 다른 이메일 주소가 될 수 있습니까? – BruceWayne

+1

StackOverflow에 오신 것을 환영합니다. 이 코드는 무료 코드 작성 서비스가 아닙니다. 그러나 동료 프로그래머 (및 지망자)가 자신의 코드를 작성하는 것을 돕기 위해 열심입니다. [좋은 질문을하는 방법] (http://stackoverflow.com/help/how-to-ask)의 도움말 항목을 읽으십시오. [둘러보기] (http://stackoverflow.com/tour)를 원할 수도 있습니다. 그 후에, 당신이 달성하고자하는 과제를 완료하기 위해 지금까지 작성한 VBA 코드로 질문을 업데이트하십시오. 나는 다음과 같은 것을 제안 할 것이다 :'Range ("D2 : I100")에있는 각 rngCell에 대해 : rngCell.Value2 <> vbNullString Then – Ralph

+0

한 명당 최대 6 개의 전자 메일 주소가 존재할 것인가? 우리는 "Phone", "Website"등이 이동할 것이라고 가정해야합니다. –

답변

0
Sub Macro3() 
Dim sh As Worksheet 
Dim i As Integer 
Dim j As Integer 
Dim k As Integer 
Dim m As Integer 
Dim n As Integer 
Set sh = ThisWorkbook.Worksheets("Sheet1") 

sh.Range("a1").End(xlDown).Select 

For m = 2 To Selection.Row 
sh.Range("d" & m & ":" & "i" & m).SpecialCells(xlCellTypeConstants, 2).Copy 
j = sh.Cells(Rows.Count, "g").End(xlUp).Row + 1 
sh.Range("g" & j).PasteSpecial (xlPasteValues), Transpose:=True 
Application.CutCopyMode = False 
sh.Range("a" & m & ":" & "c" & m).Copy 
k = sh.Cells(Rows.Count, "a").End(xlUp).Row + 1 
i = sh.Cells(Rows.Count, "g").End(xlUp).Row 
sh.Range("a" & k & ":" & "c" & i).PasteSpecial (xlPasteValues) 
sh.Range("j" & m & ":" & "l" & m).Copy 
n = sh.Cells(Rows.Count, "d").End(xlUp).Row + 1 
sh.Range("d" & n & ":" & "f" & i).PasteSpecial (xlPasteValues) 
Next m 
End Sub 

내 원시 데이터가 A1 사이에있는 : L1 및 결과 출력 데이터가이 같은 g 컬럼에 사이에있는 ... 이름 성 번호 이메일 전화 웹 사이트의 다른 열

관련 문제