Страницы: 1
RSS
Заливка массива на лист через vba, макрос заливает лишь 1 элемент массива
 
Всем добрый день! Вопрос по VBA. Записал массив, теперь хочу его обратно вылить на др. лист. Пользуюсь следующим:
ActiveSheet.Range(Cells(2, 1), Cells(n + 1, 1)) = Array_Contragent_Name

В результате получаю столбец состоящий лишь из 1-го элемента массива! Массив записано корректно, проверял через msgbox, имена записались верно, а вот назад чет не выходит извлечь. Подскажите где накосячил, пожалуйста.
 
Нужен двумерный вертикальный массив.
 
почему 2-мерный? у меня массив одномерный..
 
у меня родилась идея, быть может он строку пытается записать в столбец..и соответственно проставляет лишь 1 элемент. Т.о необходимо массив транспонировать...ща проверю.

Не прокатило.
Изменено: NikitaV - 06.04.2015 18:13:03
 
Ну можно и транспонировать, если одномерный - но я бы создавал сразу двумерный.
Код
ActiveSheet.Range(Cells(2, 1), Cells(n + 1, 1)) = Application.Transpose(Array_Contragent_Name)
 
Цитата
NikitaV написал: почему 2-мерный? у меня массив одномерный
Создайте двумерный из одного столбца)
 
Hugo, спасибо! Транспонирование через Application помогло.
 
Транспонирование кажется так до сих пор и не работает с массивами более 65536 значений, а в ранних версиях и этого не могло повернуть...
Да и время занимает - лучше сразу делать двумерный массив, если возможно, и выгружать без транспонирования.
Страницы: 1
Наверх