如果select了“列表框”,则删除Excel行
嗨,我需要帮助,我的代码应该删除我的表中的行一旦在列表框中select的项目,这是有点奇怪,当我运行它并没有删除我select的项目,但它删除了上面的一个:
Private Sub clearselected() Dim I As Long On Error Resume Next With ListBox1 For I = .ListCount - 1 To 0 Step -1 If .Selected(I) Then .RemoveItem I With Sheets("Expenses") .Rows(I + 2).EntireRow.Delete .Shape("Listbox1").ControlFormat.ListFillRange = _ .Range("B:B").Address End With End If todaysDate.Text = "" TextBox11.Text = "" TextBox13.Text = "" TextBox12.Text = "" TextBox4.Text = "" Next I End With End Sub
正如在注释中提到的,由于行和ListBox
起始索引不同,应该将i+2
更改为i+3
。
然而,只要你有这样的问题,只要尝试一些“高级”的debugging,告诉你到底发生了什么:
With Sheets("Expenses") MsgBox (i + 2 & " is going to be deleted!") .Rows(i + 2).EntireRow.Delete 'or just .Rows(i + 2).Delete .Shape("Listbox1").ControlFormat.ListFillRange = _ .Range("B:B").Address End With
因此,在删除之前,您将看到MsgBox
,告诉您将会发生什么事情。 如果你不满意,很容易将i+2
更改为i+3
等。