Разложить на строки (Excel)

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

aks_sv
Сообщения: 53
Зарегистрирован: 30 окт 2007, 06:38

Pavel55, Спасибо!
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

&quot писал(а):Не работает, пишет в строке:
For i = LBound(v) To UBound(v)
ошибка?
Правильно пишет. v у вас проинициализирован значением одной ячейки
Cells(LastRow,11) и не является массивом.
Если MyData - именованная часть колонки, cодержащей исходные данные,
то инициализацию массива нужно делать так:

Код: Выделить всё

v = Application.WorksheetFunction.Transpose([MyData])
Для строки, естественно, транспонирование не нужно.
Или

Код: Выделить всё

ReDim v(1 to LastRow) as variant
..............
For i = 1 To LastRow
    v(i) = Cells(i, 11).Value
Next i
Но самое правильное вообще обойтись здесь без массива, cделав сортировку
средствами Excel.
Я использовал массив просто для прояснения смысла алгоритма
И кстати, в реальной жизни Variant лучше не использовать. Это неэффективно.
Ответить