2016-10-27 2 views
0

После кода я использовал позволяет данные из диапазона ячеек на листе:Возвращение данных в диапазон ячеек

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 

Это работает только если я запускаю код с первого раза, но если я снова запустить его, он больше не работает. Любая помощь?

+0

Это могло бы быть лучше, если вы разместите часть вашего кода, который ** не ** работает, а не проводки часть ваш код, который ** работает **. Часть, которая работает, полезна, но часть, которая не работает, - это бит, который нам действительно нужен. Просто зная, что вы начали с чужого ответа, не позволяет нам понять, правильно ли вы применили его для своей ситуации. – YowE3K

+0

@ YowE3K Обновлен мой вопрос. Благодаря :) – ramj

ответ

2

Я не знаю, почему ваш код возвратит разные результаты, если вы запустите его дважды.

Вот более простой способ сделать то, что вы хотите сделать:

Private Sub btnUpdate_Click() 

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

End Sub