Вытаскивание столбцов из массива - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Пытаюсь разобраться с массивами, пока получается туго. Задача у меня взять с листа таблицу, засунуть её в двумерный массив, а затем 1 столбец вывести в combobox, как список. Начал пошагово разбираться:
  • Разобрался, как взять с листа в двумерный массив данные
  • Разобрался, как их выводить на лист
  • Но с combobox проблемы
Листинг программы
  1. Sub prog()
  2. Dim ListArr As Variant
  3. Worksheets("Лист1").Select
  4. ListArr = ActiveSheet.UsedRange.Value
  5. 'записываю 1 строчку (заголовки) в данные ячейки в строчку на листе
  6. i = 1
  7. Do While v(1, i) <> Empty
  8. ActiveSheet.Cells(i, 7).Resize.Value = v(1, i)
  9. i = i + 1
  10. Loop
  11. 'Тут в строчку записываю 1 столбец без заголовка, если выхожу за границу массива - Out of range - ошибка выводит из цикла
  12. y = 2
  13. On Error GoTo GetOut
  14. Do While v(y, 1) <> Empty
  15. ActiveSheet.Cells(y - 1, 8).Resize.Value = v(y, 1) 'пока не будем записывать данные в ячейку
  16. y = y + 1
  17. Loop
  18. GetOut:
  19. 'тут не выходит так же, в чём ошибка???
  20. f = 2
  21. 'On Error Resume Next
  22. On Error GoTo GetOut2
  23. Do While v(f, 1) <> Empty 'ТУТ пишет Subscript is out of range
  24. On Error GoTo GetOut2
  25. ComboBox1.AddItem v(f, 1)
  26. f = f + 1
  27. Loop
  28. GetOut2:
  29. End Sub
Подскажите, в чём ошибка??? Может быть без ошибок можно реализовать For Each перебор, чтобы вывести в combobox 1 столбец без заголовка, как это сделать?

Решение задачи: «Вытаскивание столбцов из массива»

textual
Листинг программы
  1. combobox1.list=v

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы