VBA初心者です。
ある指定した文字列が含まれる行をコピーして、(文字列が含まれているのは、E列とF列)
別の指定した文字列が含まれる行の下に、挿入貼り付けをしたいと思っていますが、うまくできません。
いろいろなサイトを検索して、下記のコードを作ってみましたが、エラーにもなりませんが、望む結果になりません。(というか、変化が見られない)
ご教示の程、よろしくお願いします。
With Worksheets(1) Dim a As String a = InStr(Cells(4.1), "別の指定した文字列") If InStr(ActiveCell.Value, "指定した文字列*") <> 0 Then Range("A:O").Cut Cells(a + 1).Insert Shift:=xlDown End If End With
こんな感じではどうでしょう
Dim a As Variant
Dim b As Variant
With Worksheets(1)
Set a = .Range("E:E,F:F").Find(What:="コピー元検索用文字列")
Set b = .Range("E:E,F:F").Find(What:="貼り付け先検索用文字列")
If a Is Nothing Or b Is Nothing Then Exit Sub
.Rows(a.row).Cut
.Rows(b.row + 1).Insert
End With
ありがとうございます。1行は無事貼り付け先の下に挿入できたのですが、
連続した複数行の場合、どうすればいいでしょうか。
コピー元の文字列は、数行あり、貼り付け先の文字は一列にしかありません。
引き続きご教示いただけますと幸いです。
複数行ある場合等はもう少し前提条件が定まっていないと答えようがないです。
現状だとE:F列の検索ワードが一致した行を移動していますがこれを複数回行うとなると移動させた行がまた検索に引っかかってしまいます。
ぱっと思いつく限りだと
コピー元になるセルは貼り付け先のセルより上にしかない等の条件があるか
対象の行を一度別シートに移動させ全部移動させて検索に引っかからなくなってから貼り付け先へ移動させる等の方法でしょうか。
条件の説明が足らず、申し訳ありません。
コピー元となるセルは、貼り付け先セルより、必ず下にいます。
またコピー元となるセル(指定した文字列を含む)は、必ず連続しています。

回答2件
あなたの回答
tips
プレビュー