我在 VBA 中并没有太多的背景知识,但我正在尝试创建一个宏,在该宏中,按下按钮,所有在一定范围内没有复选标记的行都会被删除。我浏览了一些论坛,并了解了“marlett”检查,该字体中的字符“a”显示为复选标记。这是我在适当范围内单击 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
一切正常,但唯一的问题是我必须多次按下按钮才能删除所有未选中的行!看来我的循环无法正常工作-有人可以帮忙吗?
谢谢!