我在VBA中构建了一个用户表单,用于显示第1行到第250行中的项目列表。我要做的是添加使用userform删除任意一行的选项,方法是单击对应于该行的按钮(如果可能,将剩余的行向上移动一个)。那可能吗?
Private Sub UserForm_Initialize()
Dim rngData As Range
Dim lngRow As Long
Dim lngCol As Long
Set rngData = Sheets("MAIN").Range("W1:X250")
With ListBox1
.ColumnCount = rngData.Columns.count
For lngRow = 1 To rngData.rows.count
For lngCol = 1 To rngData.Columns.count
If lngCol = 1 Then
.AddItem rngData.Cells(lngRow, lngCol).Text
Else
.List(lngRow - 1, lngCol - 1) = rngData.Cells(lngRow, lngCol).Text
End If
Next
Next
End With
End Sub
答案 0 :(得分:0)
是的,我们假设您添加了CommandButton
,点击它后,您会从ListIndex
所选项目中读取ListBox1
(允许删除一行)。
Sub CommandButton1 _Click (在User_From代码模块中)
Option Explicit
Private Sub CommandButton1_Click()
Dim RowtoDel As Long
' listindex starts from 0, while your range starts from 1 >> add 1
RowtoDel = Me.ListBox1.ListIndex + 1
Sheets("MAIN").Rows(RowtoDel).Delete
End Sub