Диапазоны и массивы -как с ними правильно работать

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
vladyank
Сообщения: 11
Зарегистрирован: 16 мар 2009, 16:13

Знатоки, ответьте на такой вопрос, плиз
Вопрос не так прост, как кажется на первый взгляд...

Для обработки данных присваиваю переменной MR ( Dim MR As variant) значения диапазона MR = Range ("B2:N501") и провожу c ней, с переменной MR, манипуляции, как с массивом MR.Все работает.

Вопрос: как записать данные обратно в диапазон ?
Range("B2").Value=MR - это не работает.
Почему? Как решить эту беду?
Методика ( Range("B2").Value=MR ) взята из Excel 2003 и VBA (Пол Киммел и др) стр 472 "Диалектика" 2006 годl
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте vladyank
Range("B2").Value=MR не соответствует Вашему вопросу "как записать данные обратно в диапазон...". Явная попытка "затолкать" переменную массива в ячейку "B2"
вариант :

Код: Выделить всё

MR = Range ("B2:N501")
...
Range ("B2:N501") = MR
более соответствует вопросу.
Евгений.
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Можно добавить, что если массив требуется записать в другой диапазон, например, начинающийся с ячейки "Y10", то можно воспользоваться:

Код: Выделить всё

MR = [B2:N501]
        'Здесь Ваши действия с массивом
    [Y10].Resize(UBound(MR, 1), UBound(MR, 2)) = MR
vladyank
Сообщения: 11
Зарегистрирован: 16 мар 2009, 16:13

благодарю. сейчас попробую :D
Ответить