私はかなり新しくExcelであり、ワークシートの特定のポイントの後に行を追加するマクロをセットアップしようとしています。例:2行目に「オリジナル」というテキストが含まれているので、後で新しい行を挿入するなどします。特定のテキストが見つかった後に行を挿入
何かの前に挿入する方が簡単かもしれないので、設定を変更することができます(たとえば、元の行が2行目になり、新しい行が上に追加されます)。溶液。
これは可能ですか?どうやって?
ありがとうございました。
私はかなり新しくExcelであり、ワークシートの特定のポイントの後に行を追加するマクロをセットアップしようとしています。例:2行目に「オリジナル」というテキストが含まれているので、後で新しい行を挿入するなどします。特定のテキストが見つかった後に行を挿入
何かの前に挿入する方が簡単かもしれないので、設定を変更することができます(たとえば、元の行が2行目になり、新しい行が上に追加されます)。溶液。
これは可能ですか?どうやって?
ありがとうございました。
次のコードを試してください: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
前の回答よりもやや単純:
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の使用は避けられました。これは問題ではないかもしれませんが、何千もの行を検索して多くの置換を行うと、コードのスピードが大幅に向上します。
可能です。 'Range'オブジェクトの' Find'メソッドと 'Insert'メソッドに関するドキュメントを読んでください。それらを試してみてください。必要に応じて、コードでこれらのメソッドを使用するときに発生する問題について、集中的な質問を投稿します。 –