2017-07-04 9 views
0

Excel 2016でマクロを使用しています。「名前」というテキストを含む行の下に行を追加し、その行の下に行の内容をコピーします。私がこれまで試したどのような:一致する行を追加してコピーする

Sub InsertNewRow() 
    Dim c As Range 
    Set Rng = ActiveSheet.Range("A1:H654") 
    For dblCounter = Rng.Cells.Count To 1 Step -1 
     Set c = Rng(dblCounter) 
     If c.Value Like "*Name*" Then 
      c.EntireRow.Insert 

    End If 
    Next dblCounter 
End Sub 

excel2016 macro

質問は、新しい行を追加します(コードの上を参照)、上記のそれに行の全内容をコピーする方法です。

+0

OK、そしてあなたの質問は...? – SJR

答えて

2

先頭にはOption Explicitを使用し、すべての変数を宣言してください。

コード

Option Explicit 

Sub InsertNewRow() 

    Dim c As Range, Rng As Range 
    Dim dblCounter As Long 

    Set Rng = ActiveSheet.Range("A1:H654") 
    For dblCounter = Rng.Cells.Count To 1 Step -1 
     Set c = Rng(dblCounter) 
     If c.Value Like "*Name*" Then 
      c.Offset(1).EntireRow.Insert ' insert a row below 
      c.EntireRow.Copy Destination:=Range("A" & c.Row + 1) ' copy the contents from the row above 
     End If 
    Next dblCounter 

End Sub 
+0

ありがとう!新しい行を追加すると機能します。上記の行から内容をコピーすることはできません。 –

+0

@CitizenSP「働いていない」とはどういう意味ですか?エラーが出ていますか?それは間違った行をコピーしていますか?何もコピーしない? –

+0

エラーは表示されませんが、何もコピーされません。 –

関連する問題