0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
1
Excel

Как записать в массив диапазон ячеек, а затем скопировать его

29.08.2018, 17:03. Показов 15592. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, вопрос следующего плана:

Мне нужно скопировать диапазон ячеек с Лист1 на Лист2 при определенном условии (условие проверяется c помощью if-then).
Я знаю такую конструкцию:
Visual Basic
1
 arrTest(1) = Range("A1:C1").Value
С помощью ней диапазон "A1:C1" переносится на другой лист и проблем нет.

Однако у меня много таких диапазонов "A1:C1", "A2:C2", "A3:C3" и так далее. Следовательно их надо занести в цикл for-next, но
счетчик i никак не подружить с аргументом функции Range, поэтому нужно какое-то другое решение.

Если можно было бы сделать что-то типа: arrTest(i) = Cells(i, "A:C").Value , то это бы помогло, но к сожалению такое не работает.

Помогите решить плз.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2018, 17:03
Ответы с готовыми решениями:

Как скопировать непрерывный диапазон ячеек?
Доброго времени суток! Помогите пожалуйста в решении проблемы. Необходимо скопировать диапазон...

Как скопировать диапазон ячеек, от заданной ячейки вправо и вниз до крайней заполненной?
Доброго дня, дорогие знатоки! Помогите начинающему, пожалуйста. Никак не могу подобрать...

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

Как скопировать диапазон ячеек с одной части таблицы в другую пользуясь средствами VBA?
Это наверно очень просто, но никак пока не получается. Как скопировать диапазон ячеек с одной части...

3
6919 / 2829 / 543
Регистрация: 19.10.2012
Сообщений: 8,644
29.08.2018, 17:14 2
Цитата Сообщение от spr85 Посмотреть сообщение
их надо занести в цикл for-next, но
счетчик i никак не подружить с аргументом функции Range
Так заносите в массив адреса своих диапазонов, и гоните по этому массиву for-next без проблем.

Visual Basic
1
 arrTest(1) = Range(массив(i)).Value
1
15139 / 6413 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
29.08.2018, 17:21 3
Лучший ответ Сообщение было отмечено spr85 как решение

Решение

Цитата Сообщение от spr85 Посмотреть сообщение
Если можно было бы сделать что-то типа: arrTest(i) = Cells(i, "A:C").Value
Visual Basic
1
2
3
4
5
6
7
arrTest(i) = range("A" & i & ":C" & i).Value
'или
arrTest(i) = Cells(i, "A").resize(,3).Value
'или
arrTest(i) = range("A:C " & i & ":" & i).Value
'или
arrTest(i) = range("A:C").rows(i).Value
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 23
29.08.2018, 18:15  [ТС] 4
Это просто мега! Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2018, 18:15
Помогаю со студенческими работами здесь

Создать диапазон для даты и времени и записать его в массив?
Здравствуйте Рабочий день начинается в понедельник в 10:00 и заканчивается в 19:00. С 13:00 до...

Скопировать диапазон ячеек, в котором значения первого столбца равны искомому значению, в другую таблицу
Здравствуйте, как скопировать диапазон по искомому значению. И как просто выделить его? Пример во...

Необходимо найти, скопировать по очереди данные ячеек и вставить их в определенный диапазон (в каждой ячейке он разный)
Помогите пожалуйста с макросом для Excel. Необходимо найти ячейки, содержащие определенный текст и...

Заменить первые 5 элементов массива пятью последними, массив задан как диапазон ячеек
В массиве А(20) поменять местами первые пять элементов с последними пятью элементами. При этом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru