2016-06-17 5 views
0

私はかなり新しくExcelであり、ワークシートの特定のポイントの後に行を追加するマクロをセットアップしようとしています。例:2行目に「オリジナル」というテキストが含まれているので、後で新しい行を挿入するなどします。特定のテキストが見つかった後に行を挿入

何かの前に挿入する方が簡単かもしれないので、設定を変更することができます(たとえば、元の行が2行目になり、新しい行が上に追加されます)。溶液。

これは可能ですか?どうやって?

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

+0

可能です。 'Range'オブジェクトの' Find'メソッドと 'Insert'メソッドに関するドキュメントを読んでください。それらを試してみてください。必要に応じて、コードでこれらのメソッドを使用するときに発生する問題について、集中的な質問を投稿します。 –

答えて

0

次のコードを試してください:textvalue変数の値を検索したい値に変更することができます。

Sub newRow() 
Dim textvalue As String 

textvalue = "Original" 

Cells.Find(What:=textvalue, After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False).Activate 
    ActiveCell.offset(rowOffset:=1, columnOffset:=0).Activate 

ActiveCell.EntireRow.Insert 

End Sub 
1

前の回答よりもやや単純:

Sub NewRowInsert() 
Dim SearchText As String 
Dim GCell As Range 

SearchText = "Original" 
Set GCell = Cells.Find(SearchText).Offset(1) 
GCell.EntireRow.Insert 

End Sub 

これは、現在アクティブなシートで動作します。

Set GCell = Worksheets("Sheet2").Cells.Find(SearchText).Offset(1) 

を、あなたは、例えば別のワークブックを操作したい場合:あなたは、いくつかの他のシートを使用する場合は、Sheet2のを言う、あなたが使用することができますTestBook.xlsxでは、次のように使用できます。

Set GCell = Workbooks("TestBook.xlsx").Worksheets("Sheet2").Cells.Find(SearchText).Offset(1) 

selectの使用は避けられました。これは問題ではないかもしれませんが、何千もの行を検索して多くの置換を行うと、コードのスピードが大幅に向上します。

関連する問題