Вставка массива Excel в ячейку (после изменения размера ячейки до размеров массива)

Я хочу вставить двумерный массив из одной ячейки, расширив диапазон с помощью 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, вот причина его использования.

Каковы значения LBound(conceptArray, 1) и LBound(conceptArray, 2) ?

cybernetic.nomad 19.06.2019 16:16

Каков тип и содержание conceptArray?

FunThomas 19.06.2019 16:18

LBound(conceptArray, 1) =1

JFerro 19.06.2019 16:35

LBound(conceptArray, 2)=0

JFerro 19.06.2019 16:36

conceptarray содержит текст

JFerro 19.06.2019 16:36

сложно, что Lbound(1) <> Lbound(2), поэтому я попробовал это: ReDim conceptArray(1 To 5, 1 To NumberOfConcepts + 1) >>>> та же ошибка

JFerro 19.06.2019 16:38

Это также работает: firstcellofTbl.Resize(UBound(conceptArray, 2), UBound(conceptArray, 1)).Select

JFerro 19.06.2019 16:41
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
7
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в том, что массив был задан как вариант.

оригинал:

dim conceptarray() as variant

решение:

dim conceptarray() as string

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

FunThomas 19.06.2019 17:42

Я попытаюсь выяснить, так ли это, на небольшом примере.

JFerro 19.06.2019 22:04

Другие вопросы по теме