使用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”。 任何帮助?
一个办法是做到这一点
- 在devise模式下将删除
CommandButton
的默认属性设置为False
- 将代码添加到
Checkbox
时启用CommandButton
的Checkbox
- 将代码添加到删除
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