2017-03-22 11 views
-8

以下のコードを以下のスナップショットで修正するにはどうすればよいですか?ExcelでVBAコードを使用してデータをコピーするコード

私はコード

Dim Rng3 As Range 
Dim Rng5 As Range 

For Each Rng3 In CurCell_1 


    For Each Rng5 In CurCell_3 

      lLFs = VBA.Len(Rng3) - VBA.Len(VBA.Replace(Rng3, vbLf, "")) 

    If lLFs > 0 Then 

     Range("B27").Select 
     Selection.Copy 

     Sheets("AccountModule").Select 
     Range("AY2").Select 
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
     False, Transpose:=False 

     End If 
    Next 
Next 

の下に試してみましたが、同じでは動作しません。

Input

Output

+2

は(無料)コードを求めることはありません。あなたは何も手に入れません。各Rng5用(http://stackoverflow.com/help/how-to-ask) –

+0

点心Rng3としてレンジ 薄暗いRng5として範囲CurCell_1の各Rng3については [どのように良い質問をする]をご覧ください。 CurCell_3 で lLFs = VBA.Len(Rng3) - 。VBA.Len(VBA.Replace(Rng3、vbLf、 "")) lLFs> 0なら、 レンジ( "B27") Selection.Copyを選択 シート( "AccountModule") レンジ( "AY2を")を選択し Selection.PasteSpecial貼り付け]を選択します。。= xlPasteAll、操作:= xlNone、SkipBlanks:= _ トランスポーズ、偽:= Falseの エンド 次 次 –

+0

場合は、このコードは私が試みたが、SOコーディングサービスではないので、私は、オフトピックとして、この質問を閉じるために投票しています –

答えて

1

私はあなたがこのようなルーチンの異なる種類を使用することをお勧め:

Sub separ8(src, trg) 
Dim r As Range, ar 
For Each r In src.Rows 
    ar = Split(r.Cells(1, 2), Chr(10)) 
    For Each el In ar 
    trg.Value = r.Cells(1, 1) 
    trg.Offset(0, 1) = el 
    Set trg = trg.Offset(1) 
    Next el 
Next r 
End Sub 

私のサブがあなたの入力データがsrcとによって与えられた範囲内にあることを前提としてい結果はtrgで始まる範囲に書き込まなければなりません。

この

A B  C 
1 
2  abc 123 
      456 
      789 
3  xyz 1234 
      456789 
      78941 

のようなデータがあるときに、プロシージャコール

separ8 [b2:c3],[b7] 

はあなたにこの結果を取得します:

A B C 
6 
7  abc 123 
8  abc 456 
9  abc 789 
10  xyz 1234 
11  xyz 456789 
12  xyz 78941 
関連する問題