Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Передача массива в процедуру - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Передача массива в процедуру
Vostok Дата: Воскресенье, 15.02.2015, 11:25 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Не могу передать два массива в процедуру. Возникает ошибка компиляции.
В чём ошибка- не понятно. Даже тип массивов на всякий случай перепроверил. (в окне 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]
Ранее в других макросах прибегал к такому же методу передачи массивов и ошибок не возникало. На всякий случай приведу структуру массивов:


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
СообщениеНе могу передать два массива в процедуру. Возникает ошибка компиляции.
В чём ошибка- не понятно. Даже тип массивов на всякий случай перепроверил. (в окне 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
Дата добавления - 15.02.2015 в 11:25
Vostok Дата: Воскресенье, 15.02.2015, 12:04 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
скобочки уберите здесь
Невероятно, ура, заработало.
Но это же массивы, почему макрос не работает со скобками? Может потому, что заполнен по сути только первый элемент массива, что делает его по сути - одномерным?


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Воскресенье, 15.02.2015, 12:11
 
Ответить
Сообщение
скобочки уберите здесь
Невероятно, ура, заработало.
Но это же массивы, почему макрос не работает со скобками? Может потому, что заполнен по сути только первый элемент массива, что делает его по сути - одномерным?

Автор - Vostok
Дата добавления - 15.02.2015 в 12:04
Vostok Дата: Воскресенье, 15.02.2015, 12:58 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Если вызываемая процедура у вас собирается работать с одномерными массивами

Что значит собирается работать, немного не понял? Скажем так, она Должна работать с теми массивами какие есть. А есть те, какие получаются при передачи диапазона листа массиву типа variant.
И он по структуре получается вроде бы двумерным. Но на самом деле при передаче одного столбца данных он выглядит как одномерный. Вот я и предположил, что скобки как раз-таки из-за этого и мешают макросу. Но я не уверен, потому и переспросил.
Ну а метод .Transpose в силу своих ограничений (корректность при транспонировании не более 250 строк и т.д.) мне заведомо не подходит, если говорить о перспективе. Спасибо за отзыв.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
Сообщение
Если вызываемая процедура у вас собирается работать с одномерными массивами

Что значит собирается работать, немного не понял? Скажем так, она Должна работать с теми массивами какие есть. А есть те, какие получаются при передачи диапазона листа массиву типа variant.
И он по структуре получается вроде бы двумерным. Но на самом деле при передаче одного столбца данных он выглядит как одномерный. Вот я и предположил, что скобки как раз-таки из-за этого и мешают макросу. Но я не уверен, потому и переспросил.
Ну а метод .Transpose в силу своих ограничений (корректность при транспонировании не более 250 строк и т.д.) мне заведомо не подходит, если говорить о перспективе. Спасибо за отзыв.

Автор - Vostok
Дата добавления - 15.02.2015 в 12:58
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!