将多列列表框移回 Excel

Moving multi-column Listbox back to Excel

我按照 中的建议从四列填充了用户表单。

我现在想让我的用户能够删除任何行,并使用相同的列将新列表框中的内容移回 Excel 工作sheet .

编辑:完整的项目列表可以是一行到几十行。作为我的代码如何工作的示例: 假设从 5 行的列表中,用户删除了第 3 行。在这种情况下,删除点之前的所有条目都将恢复到正确的范围(因此第 1 行和第 2 行是正确的)。第 4 行及以下未恢复。

有没有办法让所有剩余的行都填充到 Excel 中?

用户可以从此代码中删除整行:

Private Sub Remove_Click()
Dim i as Integer
For i = Me.ListBox1.ListCount - 1 To 0 Step -1
        If Me.ListBox1.Selected(i) = True Then
            Me.ListBox1.RemoveItem i
            Exit For
        End If
    Next
End Sub

我用来尝试重新填充 Excel sheet 的代码在这里。不显示任何错误消息。就好像代码认为它已经完成了。

Private Sub CommandButton1_Click()
Dim ws      As Worksheet
Dim rng     As Range
Dim MyArray
Dim x As Long
Set ws = Sheets("EnteredData")

Set rng = ws.Range("M3:P" & ws.Range("M" & ws.Rows.Count).End(xlUp).Row)

    rng.Clear

    MyArray = Me.ListBox1.List
    x = Me.ListBox1.ListCount - 1
    ws.Range("M3:P" & x).Value = MyArray

End Sub

对于解决此问题的任何帮助,我将不胜感激。谢谢

看来问题出在这一行...

ws.Range("M3:P" & x).Value = MyArray

您需要考虑前三行,所以它应该是...

ws.Range("M3:P" & 3 + x).Value = MyArray