2016-07-20 14 views
-1

再編成する必要のあるデータがExcelにあります。 (セルA1にある「ファーストネーム」)Excel VBA - 複数の列のデータを新しい行に再編成する

Sample Data

データは、セルA1から始まり、私も「ウェブサイト」の後に他の列があります。ここで私は必要なもの、本質的です。私は多くのVBAを知らないので、もし誰かがこれに完全な解決策を提供できるのであれば感謝します。

ありがとうございました!

+1

このようなGカラムに...名姓番号電子メールの携帯電話のウェブサイトの間に存在します遠い?あなたが試みた方法/公式を投稿してください。また、 "John Carter"の電子メールがすべて同じであるか、または常に異なる電子メールアドレスになる可能性はありますか? – BruceWayne

+1

ようこそStackOverflowへ。これは無料のコード作成サービスではありませんのでご注意ください。しかし、私たちは、仲間のプログラマー(そして志望者)が自分のコードを書くのを助けることを熱望しています。 [良い質問をするにはどうすればよいですか](http://stackoverflow.com/help/how-to-ask)のヘルプトピックをお読みください。また、[ツアーに参加する](http://stackoverflow.com/tour)もお勧めします。その後、達成したいタスクを完了するために、これまでに書いたVBAコードで質問を更新してください。私はこのようなことを示唆しています: 'Range(" D2:I100 ")の場合:rngCell.Value2 <> vbNullString Then – Ralph

+0

1人のために最大6つの電子メールアドレスが存在する「電話」、「ウェブサイト」などが移動することを前提としていますか? –

答えて

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となる出力データは、あなたがそうしようとしているどのような他のコラムメール

関連する問題