1

我已经建立了一个简单UserFormCombobox按名称删除行。

  • 我已经Combobox使用宏填充了行源来构建一个名为“Combo_List”的命名范围。我将它静态地插入到 rowsource 属性中(意思是,我没有用代码这样做)。
  • 还有UserForm一个Checkbox我想用于确认目的的。
  • 一旦他们从列表中选择了用户名,他们需要检查,Checkbox然后他们可以单击删除按钮。

我不知道如何编写验证Checkbox然后删除所选行的代码。

如果有帮助,这里是构建命名范围的代码,然后显示UserForm

Sub RecordDelete()

Dim LastRow As Long
ActiveSheet.Select

LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row 
Range("B3:B" & LastRow).Name = "Combo_List" 
frmDeleteData.Show

End Sub

该复选框仅命名为“checkbox1”。有什么帮助吗?

4

1 回答 1

0

一种方法是

  1. Enabled将删除的默认属性设置CommandButtonFalse设计模式
  2. 将代码添加到CheckBox启用CommandButtonCheckbox
  3. 将代码添加到删除CommandButton以删除整行

代码

Private Sub CheckBox1_Click()
 CommandButton1.Enabled = CheckBox1.Value
End Sub

Private Sub CommandButton1_Click()
    Dim rng1 As Range
    If Me.CheckBox1 Then
        Set rng1 = Range("Combo_List").Find(Me.ComboBox1.Value, , xlValues, xlWhole)
        If Not rng1 Is Nothing Then
            rng1.EntireRow.Delete
        Else
            MsgBox Me.ComboBox1.Value & "not found"
        End If
    Else
    `redundant if button is disabled
        MsgBox "Checkbox not checked!", vbCritical
    End If
End Sub
于 2013-03-09T01:45:33.663 回答