Я хочу вставить двумерный массив из одной ячейки, расширяя диапазон с помощью RESIZE () до точного размера массива.
Я получаю
ошибка запуска типа 13
несоответствие типов
ReDim conceptArray(1 To 5, NumberOfConcepts + 1)
Dim firstcellofTbl As range
Set firstcellofTbl = qbaTbl.ListColumns("name").range.iTem(1).Offset(1, 0)
' this is just a test:
'firstcelloftbl is a single cell
firstcellofTbl.Select
firstcellofTbl.Resize(UBound(conceptArray, 2), UBound(conceptArray, 1)) = Application.Transpose(conceptArray)
Какой бы размер массива я ни принимал как должное.
а) firstcellofTbl - это всего лишь одна клетка. И существует, так как выбор работает.
размер изменения имеет те же размеры, что и массив, потому что он просто изменяет размеры к размерам массива
c) изменение размера меняло оба измерения, поэтому application.transpose
это бит кода, который я добавил для тестирования:
MsgBox UBound(conceptArray, 1)
MsgBox UBound(conceptArray, 2)
Dim newrange As range
Set newrange = firstcellofTbl.Resize(UBound(conceptArray, 2), UBound(conceptArray, 1))
MsgBox newrange.address
существо:
UBound (conceptArray, 1) = 5
UBound (conceptArray, 2) = 439
newrange.address =$a$3:$E$441
, который, кажется, совпадает, так как размер нового диапазона такой же, как у транспонированного массива
Что я, возможно, делаю неправильно?
Большое спасибо
Примечание:
использование этого способа вставки данных в лист-объект (или лист) происходит в миллионы раз быстрее, чем при заполнении цикла for, поэтому его и используют.