我が家のお雑煮スタイル、教えて下さい

仕事で他の人に使ってもらうExcelファイルを作っているのですが行き詰っているので助けてください。
①列指定して特定の文字が入ったセルを複数条件から探して該当する行を全てコピーして、
②空いている行から貼り付けして、
③コピーした行のセルの一か所( I列予定 )に文字や記号を1文字追加したい。

Sub 行コピー()
Dim mySheet As Worksheet
Dim targetSheet As Worksheet
Dim lastRow As Long
Dim i As Long
Set mySheet = ThisWorkbook.Sheets("シート名")
Set targetSheet = ThisWorkbook.Sheets("シート名")
lastRow = mySheet.Cells(mySheet.Rows.Count, "A").End(xlUp).Row

For i = 1 To lastRow
If mySheet.Cells(i, "E").Value = "〇〇" Or mySheet.Cells(i, "E").Value = "△△" Or mySheet.Cells(i, "E").Value = "✕✕" Then
mySheet.Rows(i).Copy Destination:=targetSheet.Rows(targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row + 1)
End If
Next i
End Sub

ネットで探して②までは上記で可能なのですが③が分からず、
どなたか助けて頂けると助かります。

A 回答 (2件)

>③が分からず


③コピーした行のセルの一か所( I列予定 )に文字や記号を1文字追加したい。

コピーした・・のI列なら
mySheet.Cells(i, "I").Value = mySheet.Cells(i, "I").Value & "〇"
当該I列セルの値に文字"〇"を文字末に追加

貼り付けた行のI列セルなら

Dim r as Range
Set r = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Offset(, 8)
r.Value = r.Value & "〇"

貼り付けた当該行 I列セルの値に文字"〇"を文字末に追加


いずれも
mySheet.Rows(i).Copy Destination:=targetSheet.Rows(targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row + 1)

ここに入れる

End If

    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
コピーして増えた側に追加で1文字入れたかったので下側で上手く行きました。
差し込む部分も明記して頂いたので簡単でした。
ありがとうございました。

お礼日時:2024/11/25 15:42

③が曖昧です。


mySheet.Cells(i, "E")に、なのか、targetSheetに書かれた方なのか、どっち?

>>セルの一か所( I列予定 )に文字や記号を1文字追加
セルの一か所、とか、1文字追加、の意味が曖昧過ぎる。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A