所以我有一个用户表单,其中包含: 名为“lstentries”的列表框 名为“删除”的单选按钮。 此外,“开始”是行表左上角的单元格的名称。
我已经设置了代码,以便它可以选择列表框中的多个条目。但是,当我选择多个条目时,它只会删除它所在的第一行。所以我尝试创建一个 while 循环,以便它不断删除所选的循环,但这也不起作用。我收到“运行时错误 '1004' - 对象 '_Global' 的方法 'Range' 失败”
希望有人能帮助我。这是删除行的代码片段。提前致谢。
If optDelete.Value = True Then
Dim delete As Range
Do While True
Set delete = Range("start").Offset(lstEntries.ListIndex, 0)
delete.EntireRow.delete Shift:=xlUp
Loop
End If
在列表框中,您可以浏览项目列表。由于您允许选择和删除多个项目,因此您必须在删除项目时调整索引。
列表框的索引为 0,这意味着它从 0 而不是 1 开始。
' set the to go through all items in the list
For listIndexCount = 0 To lstEntries.ListCount
' check to make sure the index count is not greater or equal to the total number of items
' this is needed because the ListCount will change if items are deleted
If listIndexCount >= lstEntries.ListCount Then
Exit Sub
End If
' check to see if the item is selected
If lstEntries.Selected(listIndexCount) Then
' remove item
lstEntries.RemoveItem (listIndexCount)
' subtract 1 to account for removed item
listIndexCount = listIndexCount - 1
End If
Next
在这种情况下,另一种选择是按相反的顺序进行迭代。从列表底部开始时,您不必担心调整索引,因为删除下面的项目不会影响上面的项目。
我无法根据 etabs v21 中的截面属性选择框架和墙壁,然后删除选定的框架和墙壁。谁能向我建议使用 Excel VBA 代码来完成此操作的代码