2017-10-19 6 views
2

列Cの値に基づいて行全体をコピーするマクロを作成しようとしています。これは、 )、そしてそれは正確に同じ場所に値を貼り付けます - 凍結機能の並べ替え。定義された名前に等しい列の値に基づいて行をコピーします。

これまで私が行ったことはありますが、一度コードが実行されるとエラーになることはありません。私は同様のトピックの中に、ここで研究し、以下の私が取得したいと思い何一致混合物の一種であるされています:

Sub testIt() 
Dim r As Long, endRow As Long, pasteRowIndex As Long 

endRow = 1000 ' preferably change for a function that will retrieve the last used row number via a function 

For r = 7 To endRow 'Loop through sheet1 and search for your criteria 

    If Cells(r, Columns("C").Column).Value = ThisWorkbook.Names("MyDate").Value Then Rows(r).Select 

    For Each cell In Selection 
    cell.Value = cell.Value 
    Next cell 
    End If 
Next r 
End Sub 

私はいくつかのヒントのために非常に感謝するでしょう。

+1

FWIW(あなたの質問に記載された問題とは何の関係も) 'セル(R、列( "C")。カラム)'だけと言って簡単に書き込むことができます 'セル(R、 "C") ' – YowE3K

答えて

1

これをテストしたところ、Value of a Nameはその実際の値ではなくアドレスを返すことがわかったので、代わりにRangeを使用してください。また、各セルを選択してループする必要はありません(ただし、行全体を操作する必要はありません)。

Sub testIt() 

Dim r As Long, endRow As Long, pasteRowIndex As Long 

endRow = 1000 ' preferably change for a function that will retrieve the last used row number via a function 

For r = 7 To endRow 'Loop through sheet1 and search for your criteria 
    If Cells(r, 3).Value = Range("MyDate").Value Then 
     Rows(r).Value = Rows(r).Value 
    End If 
Next r 
'Alternatively you could use ThisWorkbook.Names("MyDate").Referstorange.Value 
End Sub 
+0

それは完璧に働いた!正確に期待通り:)素早く対応してくれてありがとう! – Dozens

関連する問題