私はVBAのバックグラウンドをあまり持っていませんが、ボタンを押すと、特定の範囲でチェックマークが付いていないすべての行が削除されるマクロを作成しようとしています。私はいくつかのフォーラムを閲覧し、そのフォントの文字「a」がチェックマークとして表示される「marlett」チェックについて知りました。適切な範囲の A 列のセルをクリックすると、「marlett チェック」を自動的に生成する必要があるコードを次に示します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A10:A111")) Is Nothing Then
Target.Font.Name = "Marlett"
If Target = vbNullString Then
Target = "a"
Else
Target = vbNullString
End If
End If
End Sub
次に、ボタンが押されたときに「A」列にチェックマークが付いていない行を実際に削除する別のマクロ (ボタンに割り当てられた) があります。
Sub delete_rows()
Dim c As Range
On Error Resume Next
For Each c in Range("A10:A111")
If c.Value <> "a" Then
c.EntireRow.Delete
End If
Next c
End Sub
すべてが機能しますが、唯一の問題は、チェックされていないすべての行が削除される前に、ボタンを複数回押す必要があることです!! 私のループが正しく動作していないようです - 誰でも助けてもらえますか??
ありがとう!