Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Перенос данных массивом с ListBox в таблицу

Автор SergioGach, 28.02.2015, 19:54

« назад - далее »

SergioGach

Доброго вечера всем.
Прошу подсказки куда рыть и по возможности помощи. Я в тупике.
Задача: На UserForm1 вписывается название, ед.изм, количество (только цифры) и кнопкой "Добавить" переносится в ListBox ( три колонки). В ListBoх может быть от 1 до 20 строк. Пытаюсь данные ListBoх массивом перенести на лист "Список1" в соответствующие колонки.
Возможно нужно не через массив, а построчно переносить.
Буду рад любой подсказке.

SergioGach

Решено. Спасибо за помощь krosav4ig на другом форуме.
Sub ЗаповСпис()
    Dim n&, arr(), number$
    With UserForm1
        If .TextBox1.Value = "" Then MsgBox "Поставте дату": Exit Sub Else
        If .ListBox1.ListCount = 0 Then MsgBox "Список цінностей порожній": Exit Sub Else
        number = Str(.TextBox1)
        arr = Array(number, .TextBox2, .ComboBox1, .ComboBox2, .ComboBox3)
        With Sheets("Список")
            n = .Cells(.Rows.Count, 1).End(xlUp).Row
            .[A1:E1].Offset(n).Value = arr
        End With
        arr = .ListBox1.List
        With Sheets("Список1")
            n = .Cells(.Rows.Count, 1).End(xlUp).Row
            With .[B1:D1].Offset(n).Resize(UBound(arr) + 1)
                .Value = arr: .Offset(, -1).Resize(, 1) = number
            End With
        End With
    End With
    Unload UserForm1
End Sub

Serge 007

Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390