[[20101214161618]] 『セルの値が変わったら行を挿入したいのですが、「』(ふみ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの値が変わったら行を挿入したいのですが、「型が違います」とエラーが出ます』(ふみ)
 C列の値が変わったら1行挿入したいのですが、
 似たようなマクロを探してコピーしても「型が違います」とエラーが出ます。
 If〜のところで引っかかってしまうようです。
 C列の値は 2010.12.16 など、セルの書式は標準です。
 表の先頭はタイトル行です。
 エクセル初心者なのですごい単純なミスなのかもしれませんが、
 似たような質問を読んでもわからなかったので思い切って質問させていただきました。
 どうぞよろしくお願いします。

 このようにしたいのですが・・・
 2010.11.16
 2010.11.16
 2010.12.16
 2010.12.16
 ↓(マクロ実行後)
 2010.11.16
 2010.11.16

 2010.12.16
 2010.12.16

  マクロ動作前はデータが連続しているとして

 Sub test()
    Dim R As Long
    R = 3
    While (Cells(R, 3) <> "")
        If Cells(R, 3) <> Cells(R - 1, 3) Then
            Rows(R).Insert
            R = R + 1
        End If
        R = R + 1
    Wend
 End Sub

 でどうでしょう。

 (ホグペン)

 いったんマクロ実行後、さらに下にデータを追加したのちにも、
 追加した部分に対しても同様な処理をするのであれば、

 Sub test()
    Dim last As Long
    Dim i As Long

    last = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
    For i = last To 2 Step -1
        If Sheets("Sheet1").Cells(i - 1, 1) = Empty Then Exit Sub
        If Sheets("Sheet1").Cells(i, 1) <> Sheets("Sheet1").Cells(i - 1, 1) Then
            Rows(i).Insert
        End If
    Next i

 End Sub

 (tora)


 ホグベンさん、toraさん、早速にありがとうございます!
 動きました!
 おかげさまでうまくいかなかった原因も(たぶん)わかりました。
 下のほうの行に変なデータが入っていたのが原因だったようです。
 (今までコピーしていたマクロは、下の行から処理するのですぐに
 止まってしまった)
 上のほうの行ばかり見ていたから気づかなくて・・・。
 本当に助かりました。ありがとうございました。
 (ふみ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.