У меня есть большой массив (45000 элементов), который мне нужно записать в лист Excel. Однако это происходит слишком долго при циклическом переключении значений (запрос доступа к памяти для каждого значения)
(я уже отключил такие функции, как обновление экрана)
Я нашел несколько способов сделать это, используя тип Variant (французский: https://www.lecfomasque.com/vba-rediger-des-macros-plus-rapides/) Однако, в какой-то момент я, должно быть, все испортил, см. Пример кода
Sub test()
Dim table(4) As Variant
Dim writeArray() As Variant
table(0) = 0
table(1) = 1
table(2) = 2
table(3) = 3
table(4) = 4
writeArray = table
'Supposed to write 0 to A1, 1 to A2,... but not working that way
Range("A1:A5").Value = writeArray
End Sub
Этот код записывает только первое значение (0) во весь диапазон, даже если вариант writearray содержит также другие значения (1,2,3,4).
Любая идея (без запроса памяти для каждого значения) о том, как решить эту проблему, приветствуется, Спасибо ^ - ^
РЕДАКТИРОВАТЬ (РЕШЕНИЕ) -----------------------
Кажется, что решения Paul (transpose) и Mikku (2D-array) работают, и оба обеспечивают в десять раз сокращение времени выполнения в моем случае. Транспонирование в среднем немного быстрее.