Работа с ячейками и диапазонами в Excel VBA (выделение, копирование, перемещение, редактирование)
При работе с Excel большую часть времени вы проводите в области рабочего листа, работая с ячейками и диапазонами.
А если вы хотите автоматизировать свою работу в Excel с помощью VBA, вам нужно знать, как работать с ячейками и диапазонами с помощью VBA.
С диапазонами в VBA можно делать много разных вещей (например, выбирать, копировать, перемещать, редактировать и т. Д.).
Чтобы охватить эту тему, я разделю это руководство на разделы и покажу вам, как работать с ячейками и диапазонами в Excel VBA на примерах.
Все коды, которые я упоминаю в этом руководстве, необходимо поместить в редактор VB. Перейдите в раздел «Где разместить код VBA», чтобы узнать, как это работает.
Если вы заинтересованы в изучении VBA простым способом, ознакомьтесь с моими Онлайн-обучение по Excel VBA.

Как выделить диапазон ячеек в Microsoft Excel
Следующий пример кода выводит окно сообщения с кнопками Да и Нет. Если пользователь щелкнет на кнопке Да, то появится другое окно сообщения с надписью «Продолжаю. . . «. Если пользователь щелкнет на кнопке Нет, появится сообщение «Процесс прерван». Второй аргумент использует vbQuestion плюс vbYesNo: окно сообщения будет содержать знак вопроса и кнопки Да и Нет.
Присвоение диапазона ячеек переменной
Чтобы переменной присвоить диапазон ячеек, она должна быть объявлена как Variant, Object или Range:
Чтобы было понятнее, для чего переменная создана, объявляйте ее как Range.
Присваивается переменной диапазон ячеек с помощью оператора Set:
В выражении Range(Cells(3, 4), Cells(26, 18)) вместо чисел можно использовать переменные.
Для присвоения диапазона ячеек переменной можно использовать встроенное диалоговое окно Application.InputBox, которое позволяет выбрать диапазон на рабочем листе для дальнейшей работы с ним.


Excel vba скопировать диапазон ячеек — Все о Windows 10
Начнем с объявления переменных как объектов Range. Затем мы назначаем диапазон этим переменным с помощью оператора Set. После того, как диапазон был назначен переменной, вы можете просто использовать переменную.
Выделение большого диапазона ячеек с помощью клавиши «Shift»
Иногда метод выделения ячеек путем нажатия и перетаскивания не всегда удобен, потому что диапазон ячеек, который вы хотите выбрать, выходит за пределы экрана. В этом случае, вы можете выделить диапазон ячеек с помощью клавиши «Shift», таким же способом, каким бы вы выбирали группу файлов в папке с файлами.
Щелкните первую ячейку в диапазоне, который вы хотите выделить.
Прокрутите лист до тех пор, пока не найдете последнюю ячейку в требуемом диапазоне. Удерживая в зажатом положении клавишу «Shift», нажмите курсором на эту ячейку.
Теперь все ячейки, в указанном вами диапазоне, будут выделены.

Ввод-вывод данных на лист Excel с помощью метода Cells. Диалоговый ввод — вывод в VBA Vba msgbox вывод значения переменной
Любая процедура состоит из трех частей: ввода, выполнения и вывода. Ввод — это информация, необходимая для выполнения процедуры; вывод — это то, что получилось в результате выполнения процедуры.
Макрос ОкруглДиапаз_2 – добавляет формулу округления в выделенный диапазон
Суть работы макроса точно такая же, как и в предыдущем, отличие лишь в том, что нужно определить координаты ячеек выделенного диапазона и обработать каждую ячейку индивидуально с помощью цикла.
Определили номера первых и последних строк и столбцов, чего нам достаточно, чтобы задать диапазон с помощью Cells(), теперь нужен двойной цикл, который пройдет по каждой ячейке диапазона:
Теперь собственно у нас есть все необходимое, чтобы собрать вместе макрос, который бы добавлял функцию округления до второго знака после запятой в каждой ячейке выделенного диапазона, при условии, что в ячейке уже нет округления:

Пример 2 – работа с форматами
4-5 цифр повторяются, остальные разные. Ячейки в которых совпадают все 10 цифр можно автоматически выделить с помощью условного форматирования.
А вот как сделать так, чтобы подобным образом автоматически выделялись цветом ячейки в которых совпадают 4 цифры и более?
За раннее спасибо!