将数据返回到单元格范围

时间:2016-10-27 02:45:01

标签: excel vba excel-vba listbox

我使用的代码允许来自工作表上单元格范围的数据:

Private Sub UserForm_Initialize()
    listTo.Clear
    listCC.Clear
    listTo.List = Worksheets("Main").Range("C12:C26").Value
    listCC.List = Worksheets("Main").Range("D12:D26").Value
End Sub

这很好用。那么我现在的问题是如果用户点击Update按钮,如何将它们返回到工作表。我找到了一些答案here,但我看不到任何变化或似乎无法正常工作。以下是我编辑的代码:

Private Sub btnUpdate_Click()

Dim dataItems As Range
With Me.listTo
    Dim Data()
    ReDim Data(1 To .ListCount, 1 To 1)
    Data = .List

    With Worksheets("Main")
        Set dataItems = .Range("C12", .Range("C12").Offset(Me.listTo.ListCount - 1, 0))
    End With
    With dataItems
        .Value = Data
    End With
End With

End Sub

这只有在我第一次运行代码时才有效,但是如果我重新运行代码,它就不再起作用了。有帮助吗?

1 个答案:

答案 0 :(得分:2)

我不知道为什么你的代码在运行两次后会返回不同的结果。

这是一种更简单的方法来做你想做的事情:

Private Sub btnUpdate_Click()

    Worksheets("Main").Range("C12").Resize(listTo.ListCount).Value = listTo.List

End Sub