Не удается транспонировать массив. Ошибка 5 (недопустимая процедура или аргумент)

#arrays #vba #transpose

#массивы #vba #транспонировать

Вопрос:

У меня возникли некоторые проблемы с транспонированием массива. Это выдает мне ошибку 5 (недопустимая процедура или аргумент) в этой строке

 Range = Application.Transpose(DataArr)
  

1) Массив передается в этот подраздел из другого подраздела.
2) Этот подраздел вызывается из двух разных подразделов.

 Sub ArrToSheet(Report As String, DataArr As Variant)
....
Range = Application.Transpose(DataArr)
  

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

У вас есть какие-либо идеи?

Заранее спасибо!

Комментарии:

1. Диапазон — это объект диапазона, верно? Вы уверены, что то, что вы передаете в DataArr, является массивом? Каков размер? Транспонирование имеет ограничения при обработке больших массивов.

2. Да, диапазон — это объект диапазона.

3. И ответ на другие 2 вопроса?

4. Да, я уверен, что я передаю массив, потому что, когда я пытаюсь записать DataArr без транспонирования, все в порядке. Размер составляет около 100 в обоих измерениях

5. Хммм … проблем быть не должно. Строка с транспонированием — это именно то, что вызывает ошибку?

Ответ №1:

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

Комментарии:

1. У меня такая же проблема. Не могли бы вы уточнить, в чем заключалась «ошибка», которую вы допустили?