Доброго вечера всем. Прошу подсказки куда рыть и по возможности помощи. Я в тупике. Задача: На UserForm1 вписывается название, ед.изм, количество (только цифры) и кнопкой "Добавить" переносится в ListBox ( три колонки). В ListBoх может быть от 1 до 20 строк. Пытаюсь данные ListBoх массивом перенести на лист "Список1" в соответствующие колонки. Возможно нужно не через массив, а построчно переносить. Буду рад любой подсказке.
Доброго вечера всем. Прошу подсказки куда рыть и по возможности помощи. Я в тупике. Задача: На UserForm1 вписывается название, ед.изм, количество (только цифры) и кнопкой "Добавить" переносится в ListBox ( три колонки). В ListBoх может быть от 1 до 20 строк. Пытаюсь данные ListBoх массивом перенести на лист "Список1" в соответствующие колонки. Возможно нужно не через массив, а построчно переносить. Буду рад любой подсказке.SergioGach
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
[/vba]
так нужно? [vba]
Код
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
Да, работает просто превосходно. Решение элегантное, мне к такому еще учиться, тренироваться и вряд ли что подобное будет. Спасибо, буду разбирать код.
Да, работает просто превосходно. Решение элегантное, мне к такому еще учиться, тренироваться и вряд ли что подобное будет. Спасибо, буду разбирать код.SergioGach