[[20200513103416]] 『チェックボックスを外した時にB列にある特定の文氏x(dk22) ページの最後に飛ぶ

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

 

『チェックボックスを外した時にB列にある特定の文字列を含む結合セルの行全体を削除したい。』(dk22)

こんにちは。
B列にある文字列「ABC」を含んだ結合セルの行全体を削除したくて、
以下のVBAを作成しましたが、「型が一致しません」とメッセージが出て上手くいきません。どなたかご教授お願いいたします。

(やりたいこと)

   A     B    C    D    E    F

   1  |     |
   2  | ABC |           ←ここの結合セルを含む列を削除
   3  |_____|

   4
   5
===================================
(プログラム内容)
チェックボックスを外した際に、LastRowでデータが入っている最下列を特定する。最下列から4行目までのB列で「ABC」の文字列データが入っている結合セルを検索し、対象のセルがあればその結合セルを含む行全体をEntireRowで削除する。

Private Sub CheckBox1_Click()

    Dim LastRow As Long
    Dim i As Long
    Dim Value As String

 (中略)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
    If CheckBox1.Value = False Then

    LastRow = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    For i = LastRow To 4 Step -1
    If Value = Worksheets("sheet1").Cells(i, "B").MergeArea.Value = "ABC" Then
    Cells(i, "B").MergeArea.EntireRow.Delete
    End If
    Next i

    End If

End Sub

< 使用 Excel:Excel2019、使用 OS:Windows10 >


↓の行 構文的におかしくないですか?
If Value = Worksheets("sheet1").Cells(i, "B").MergeArea.Value = "ABC" Then

インデントつけてもう一度チェックしなおしてみてはどうでしょうか?
整理するとこんな感じになりそうですが・・・

    Sub test()
        Dim 行 As Long
        Stop

        With Worksheets("Sheet1")
            For 行 = .Cells(.Rows.Count, 1).End(xlUp).Row To 4
                If .Cells(行, "B").Value = "ABC" Then
                    .Cells(行, "B").MergeArea.EntireRow.Delete
                End If
            Next 行
        End With
    End Sub

(もこな2 ) 2020/05/13(水) 12:15


もこな2 さん for文に[Step -1]が抜けてませんか?
(通りすがり) 2020/05/13(水) 13:31

コメント返信:

[ 一覧(最新更新順) ]


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