2017-10-04 5 views
0

これは惑星で最も愚かな質問かもしれません。 2つのセルの値を縦に繰り返してどのようにマージすることができますか?このようなとして:AとBは400個の+細胞を持っているセルを垂直方向に結合する方法

enter image description here

列は、したがって、私が手動で達成したいものを行うことは不可能です。

注:私はあなたがそれぞれのセルを参照するためにINDEX関数を使用することができますA.

答えて

3

あなたは、データの各セルまでの範囲で実行さ

Sub Merge() 

Dim data As Range 
Dim cell As Range 
Dim output As Range 
Dim i As Integer 

Set data = Range("A2:B4") 
Set output = Range("D2") 
i = 0 

For Each cell In data 
    output.Offset(i, 0) = cell 
    i = i + 1 
Next 

End Sub 
+0

ありがとうマイケルは働いています私は何のoutput.Offset(i、0)=セル とi = i + 1が何をしているのか学習したいですか? – shaadi

+0

Offsetプロパティを読み上げます。各ループは、データ範囲内の現在のセルからの値を開始出力範囲D2の下の次の行に入れています。 https://msdn.microsoft.com/en-us/library/office/aa221543(v=office.11​​).aspx – Michael

0

にBをマージしたいです。データがA2である場合:B4、この式は、任意の列で動作しますが、行2に開始する必要があり、その後、ダウン充填することができる。

=INDEX($A$2:$B$4,ROW()/2,MOD(ROW(),2)+1) 

式はカウンタとして現在の行を使用します。すべての偶数行では、データの最初の列から値を取得し、奇数行ごとに2番目のデータ列から値を取得します。 2行ごとに、次のデータ行から値が取得されます。

+0

おかげで、私は列Aまたは基本的に異なるの列にこの数式を貼り付ける必要がありませんマイケル出力列に追加VBAでの単純なループを作成することができます私は実際にこの式を理解していません。 – shaadi

+0

A2:B4は、あなたのデータがどこにあるかを表しています。あなたの例では、数式はE2に入ります。どの列にでも入ることができますが、2行目から開始してから入力する必要があります。 – Michael

関連する問題