使用UserForm删除行

我用Combobox构build了一个简单的UserForm来按名称删除行。

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

我不知道如何编写validationCheckbox的代码,然后删除选定的行。

如果有帮助,下面是构build命名区域的代码,然后显示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 

该checkbox只是名为“checkbox1”。 任何帮助?

一个办法是做到这一点

  1. 在devise模式下将删除CommandButton的默认属性设置为False
  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