从userform VBA上显示的数据中删除单行

时间:2017-01-10 10:45:04

标签: vba excel-vba excel

我在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

1 个答案:

答案 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