将多列列表框移回 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
我按照
我现在想让我的用户能够删除任何行,并使用相同的列将新列表框中的内容移回 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