我有一个列表框,它显示了我需要添加一个删除按钮来删除所选行的 excel 工作表的行。我试过这个
Private Sub CommandButton3_Click()
Dim i As Integer
For i = 0 To Range("A65356").End(xlUp).Row - 1
If lstDisplay.Selected(i) Then
Rows(i).Select
Selection.Delete
End If
Next i
End Sub
但是当我尝试删除例如第 10 行时,它是被删除的第 9 行,它总是删除所选行之前的行
任何修复???
感谢大家
最佳答案
我必须自己测试一下,但我猜想是这样的:
Private Sub CommandButton3_Click()
Dim i As Long, rng As Range
With Me.lstDisplay
For i = 0 To .ListCount - 1
If .Selected(i) Then
If Not rng Is Nothing Then
Set rng = Union(rng, Sheets("Sheet1").Rows(i + 1))
Else
Set rng = Sheets("Sheet1").Rows(i + 1)
End If
End If
Next i
End With
rng.EntireRow.Delete
End Sub
这样,您只需执行一次删除行。
顺便说一句,我预计会有一个多选列表框。如果它不是多选,它将简化代码,因为不需要循环列表框。
关于excel - 从列表框用户窗体中删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57993207/