2014-10-28 5 views
0

У меня есть многомерный массив, который заполняется с помощью одной строки кода:Как написать многомерный массив?

ArrayName = Worksheets ("SourceDataWorkSheet) .Range (" A18: BM174")

Преимущество заполнение массива с использованием этого метода, а не количество циклов по ячейке, заключается в том, что оно заполняется менее чем за секунду - даже для такого большого массива данных.

Можно ли просто написать данные как быстро?

На данный момент я пишу данные (после нахождения подходящего места для вставки) ячейки по ячейке через схему цикла, и это действительно замедляет весь процесс.

То, что я намереваюсь сделать, состоит в том, чтобы иметь возможность вставить второе измерение массива в столбце на листе DestinationSheet (после того, как был найден цикл, чтобы определить, где его поставить). Другими словами, после того, как найдена строка назначения для массива (1, x), я хочу вставить значения X в диапазон (H20: AB20) (например), но я не могу понять, как вставить без использования значений ячейки цикла.

ответ

0

Вы можете написать его таким же образом - вам просто нужно использовать границы массива, чтобы определить, насколько большой целевой диапазон должен быть:

Range("H20").Resize(ubound(ArrayName, 1), Ubound(ArrayName, 2)).Value = ArrayName 

, например.

+0

Спасибо за помощь. Тем не менее, я не совсем возвращаю то, что мне нужно. То, что я хотел бы сделать, распечатывать только соответствующее размерность строки за раз, например. когда я нахожу соответствие для значения в массиве (1, x), распечатываю значения, записанные в X, а не весь массив. Надеюсь это имеет смысл? –

+0

Итак, вы хотите вставить «столбец» x из массива в строку - т. Е. Транспонирован? – Rory

Смежные вопросы