🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

Q&A

解決済

1回答

1000閲覧

VBA 行を挿入してコピーをする 1行目と2行目が反映されない

minako_tera

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

0グッド

0クリップ

投稿2021/02/18 05:44

C列に日付が入っています。その該当する月(K1に例えば3月1日を入れる)がある場合、次の行にセルをコピーするということをしたいのですが、以下のコードを使用すると1行目と2行目が反応せず、3行目からコピーがされます。

  A  B   C    D    E
1 あ    3/31       3/1
2 い    3/31
3 う    3/31         →この行から行の挿入がされて4行目にコピーされます。
4 え    2/21
5 お    3/23

お手数ですが、ご指導よろしくお願いします。

    Dim mx As Long
Dim i As Long
Application.ScreenUpdating = False
mx = Range("C" & Rows.Count).End(xlUp).Row
For i = mx To 3 Step -1

If Cells(i, "C").Value <> "" And Format(Cells(i, "C").Value, "yyyymm") = Format(Cells(1, "E").Value, "yyyymm") Then
Rows(i).Copy
Rows(i + 1).Insert Shift:=xlDown
End If
Next
End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

プログラムは書いたとおりにしか動きません。
3行目で止めているのでそうなります。

diff

1- For i = mx To 3 Step -1 2+ For i = mx To 1 Step -1

投稿2021/02/18 05:52

hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minako_tera

2021/02/18 06:04

たいへん失礼いたしました。初歩的なミスでした ご指摘いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問