#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. У меня такая же проблема. Не могли бы вы уточнить, в чем заключалась «ошибка», которую вы допустили?