Не могу передать два массива в процедуру. Возникает ошибка компиляции.
В чём ошибка- не понятно. Даже тип массивов на всякий случай перепроверил. (в окне Immediate видно) Массивы создавал перенесением диапазонов с листа прямо в массив: [vba]
Код
Dim xBuf As Variant With ThisWorkbook.Worksheets("Коды") xBuf = .Range(.[R2], .[R2].End(xlDown)) End With '-------------------------------------------------------------------------------------------------------------- Dim xBufName As Variant With ThisWorkbook.Worksheets("Коды") xBufName = .Range(.[R25], .[R25].End(xlDown)) End With
[/vba] Ранее в других макросах прибегал к такому же методу передачи массивов и ошибок не возникало. На всякий случай приведу структуру массивов:
Не могу передать два массива в процедуру. Возникает ошибка компиляции.
В чём ошибка- не понятно. Даже тип массивов на всякий случай перепроверил. (в окне Immediate видно) Массивы создавал перенесением диапазонов с листа прямо в массив: [vba]
Код
Dim xBuf As Variant With ThisWorkbook.Worksheets("Коды") xBuf = .Range(.[R2], .[R2].End(xlDown)) End With '-------------------------------------------------------------------------------------------------------------- Dim xBufName As Variant With ThisWorkbook.Worksheets("Коды") xBufName = .Range(.[R25], .[R25].End(xlDown)) End With
[/vba] Ранее в других макросах прибегал к такому же методу передачи массивов и ошибок не возникало. На всякий случай приведу структуру массивов:
Невероятно, ура, заработало. Но это же массивы, почему макрос не работает со скобками? Может потому, что заполнен по сути только первый элемент массива, что делает его по сути - одномерным?
Невероятно, ура, заработало. Но это же массивы, почему макрос не работает со скобками? Может потому, что заполнен по сути только первый элемент массива, что делает его по сути - одномерным? Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
Сообщение отредактировал Vostok - Воскресенье, 15.02.2015, 12:11
Если вызываемая процедура у вас собирается работать с одномерными массивами
Что значит собирается работать, немного не понял? Скажем так, она Должна работать с теми массивами какие есть. А есть те, какие получаются при передачи диапазона листа массиву типа variant. И он по структуре получается вроде бы двумерным. Но на самом деле при передаче одного столбца данных он выглядит как одномерный. Вот я и предположил, что скобки как раз-таки из-за этого и мешают макросу. Но я не уверен, потому и переспросил. Ну а метод .Transpose в силу своих ограничений (корректность при транспонировании не более 250 строк и т.д.) мне заведомо не подходит, если говорить о перспективе. Спасибо за отзыв.
Если вызываемая процедура у вас собирается работать с одномерными массивами
Что значит собирается работать, немного не понял? Скажем так, она Должна работать с теми массивами какие есть. А есть те, какие получаются при передачи диапазона листа массиву типа variant. И он по структуре получается вроде бы двумерным. Но на самом деле при передаче одного столбца данных он выглядит как одномерный. Вот я и предположил, что скобки как раз-таки из-за этого и мешают макросу. Но я не уверен, потому и переспросил. Ну а метод .Transpose в силу своих ограничений (корректность при транспонировании не более 250 строк и т.д.) мне заведомо не подходит, если говорить о перспективе. Спасибо за отзыв.Vostok
"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"