Содержимое ячейки можно редактировать непосредственно в ячейке. Вы также можете изменить содержимое ячейки, введя строка формул.
При редактировании содержимого ячейки Excel режиме правки. Некоторые Excel работают иначе или недоступны в режиме правки.
Если Excel режиме редактирования, в левом нижнем углу окна программы Excel отображается слово Изменить, как показано на рисунке ниже.
Как Excel в режиме правки?
В режиме правки многие команды недоступны. Например, если Excel находится в режиме правки, применить условное форматирование или изменить выравнивание содержимого ячейки невозможно.
Кроме того, клавиши со стрелками немного по-Excel в режиме правки. Вместо того чтобы перемещать курсор из ячейки в ячейку, в режиме правки клавиши со стрелками перемещают курсор в ячейке.
Включить или отключить режим правки
Если вы пытаетесь использовать режим правки, но ничего не происходит, возможно, он отключен. Вы можете включить или отключить режим правки, изменив параметр Excel редактирования.
-
Щелкните Файл > Параметры > Дополнительно.
-ИЛИ-
Только Excel 2007: нажмите кнопку Microsoft Office , Excel параметры ,а затем выберите категорию Дополнительные параметры.
-
В разделе Параметры правки выполните требуемое действие.
-
Чтобы включить режим правки, выберите элемент Разрешить редактирование непосредственно в ячейках.
-
Чтобы отключить режим правки, сключим поле Разрешить редактирование непосредственно в ячейках.
-
Перейдите в режим правки
Чтобы начать работу в режиме правки, сделайте следующее:
-
Дважды щелкните ячейку с данными, которые вы хотите изменить.
При этом запускается режим правки, и курсор находится в ячейке, которую вы дважды щелкнули. Содержимое ячейки также отображается в панели формул.
-
Щелкните ячейку с данными, которые вы хотите изменить, а затем щелкните в любом месте в области формул.
При этом в режиме правки курсор будет расположен в области формул в том месте, где вы щелкнули.
-
Щелкните ячейку с данными, которые вы хотите изменить, и нажмите F2.
В режиме правки курсор будет курсором в конце содержимого ячейки.
Вставка, удаление и замена содержимого ячеок
-
Чтобы вставить символы, щелкните ячейку, в которой их нужно вставить, и введите новые символы.
-
Чтобы удалить символы, щелкните ячейку, в которой их нужно удалить, а затем нажмите кнопку BACKSPACE или выберите символы, а затем нажмите кнопку DELETE.
-
Чтобы заменить определенные символы, вы выберите их и введите новые символы.
-
Чтобы включить режим замены, чтобы существующие символы заменялись новыми при вводе, нажмите кнопку ВСТАВИТЬ.
Примечание: Режим перепечатки можно использовать или отключать только в режиме правки. Если включен режим вставки, знак справа от точки вставки выделяется в панели формул и перезаписывается при вводе.
-
Чтобы начать новую строку текста в определенной точке ячейки, щелкните в том месте, где нужно ввести разрыв строки, а затем нажмите ALT+ВВОД.
Отмена и отмена изменений
Перед нажатием клавиши ВВОД или TAB, а также до или после нажатием клавиши F2 можно нажать клавишу ESC, чтобы отменить любые изменения содержимого ячейки.
После нажатия вводов или tab можно отменить изменения, нажав CTRL+Z или нажав кнопку Отменить на панели быстрого доступа.
Настройка способа отображения содержимого ячейки
После редактирования содержимого ячейки может потребоваться настроить их отображение.
-
Иногда в ячейке может отображаться строка вида #####. Это может происходить, если ячейка содержит число или дату, а ширина столбца не позволяет отобразить все необходимые символы. Предположим, например, что ячейка с форматом даты «дд.мм.дд.yyy» содержит дату 31.12.2007 г. Однако ширины столбца хватает только для показа шести символов. В ячейке будет отображаться #####. Чтобы увидеть все содержимое ячейки с текущим форматом, необходимо увеличить ширину столбца.
Изменение ширины столбца
-
Щелкните ячейку, для которой требуется изменить ширину столбца.
-
На вкладке Главная в группе Ячейки нажмите кнопку Формат.
-
Выделите пункт Размер ячейки и выполните одно из следующих действий.
-
Чтобы подогнать размер ячейки под текст, выберите команду Автоподбор ширины столбца.
-
Чтобы указать большую ширину столбца, щелкните Ширина столбца и введите нужное число в поле Ширина столбца.
Примечание: Также ширину столбца можно увеличить, изменив формат столбца или отдельной ячейки. Например, можно изменить формат даты, чтобы отображался только день и месяц (формат «дд.мм»), например 31.12, или представить число в экспоненциальном формате, например 4E+08.
-
-
-
Если в ячейке несколько строк текста, часть текста может отображаться не так, как нужно. Путем переноса текста в ячейке можно отобразить несколько строк текста.
Примечание: Если Excel режиме редактирования, изменить способ переноса текста невозможно.
Перенос текста в ячейке
-
Щелкните ячейку, в которой требуется выполнить перенос текста.
-
На вкладке Главная в группе Выравнивание выберите пункт Переносить текст.
Примечание: Если текст является одним длинным словом, символы не будут переносимы; вы можете расширить столбец или уменьшить размер шрифта, чтобы увидеть весь текст. Если после переноса текста в ячейке отображается не весь текст, может потребоваться изменить высоту строки.
На вкладке Главная в группе Ячейки нажмите кнопку Формат и выберите в разделе Размер ячейки команду Автоподбор высоты строки.
-
Выход из режима правки
Чтобы остановить работу в режиме правки, сделайте следующее:
-
Нажмите клавишу ВВОД.
Excel выйти из режима правки и выбрать ячейку непосредственно под текущей ячейкой.
Вы также можете указать, что при нажатии нажатия ввод вы можете выбрать другую смежную ячейку.
-
Щелкните Файл > Параметры > Дополнительно.
-ИЛИ-
Только Excel 2007: нажмите кнопку Microsoft Office , Excel параметры ,а затем выберите категорию Дополнительные параметры.
-
В разделе Параметры правки выполните требуемое действие.
-
Чтобы выделение оставалось в ячейке, которую вы редактируете, сделайте так, чтобы после нажатия нажатия ввод переместили выделение.
-
Чтобы управлять направлением выделения, выберите после нажатия клавиши ВВОД, переместите выделение, щелкните стрелку рядом с кнопкой Направление ивыберите направление из списка.
-
-
-
Нажмите клавишу TAB.
При этом режим правки перестанет быть изменен и выберет ячейку справа от текущей ячейки. При нажатии shift+TAB ячейка будет выбрана слева.
-
Щелкните другую ячейку.
Excel выйти из режима правки и выбрать выбранную ячейку.
-
Нажмите F2.
Excel выйти из режима правки и выйти из курсора.
Ячейка excel
Чтение этой статьи про ячейки в excel не потребует от Вас специальных знаний и подойдет для пользователей с любым уровнем владения Excel. Вы сможете найти ответы на следующие вопросы: как объединить ячейки в excel, как разделить ячейку в экселе, как сделать перенос строки в ячейке excel, как выделить ячейки в excel, как изменить размер ячеек в excel, как скрыть ячейки в excel и как уместить текст в одной ячейке excel.
-
Определение ячейки
-
Как соединить ячейки
-
Объединение ячеек горячие клавиши
-
Как перенести строку в ячейке
-
Как выделить ячейки
-
Как выровнять ячейки
-
Что ещё?
Ячейка в экселе может содержать в себе тестовые, числовые и прочие значения, а также формулы и ссылки на другие ячейки. Любая ячейка эксель имеет свой адрес: буквами обозначается номер столбца, цифрами обозначается номер строки.
“
Ячейка Excel – это основной элемент для внесения данных в таблицы Excel.
Начать работу с ячейкой очень просто. Для этого достаточно поместить курсор в нужную Вам ячейку и начать вводить необходимые данные, например числа или текстовые данные. Не всегда в таблицах содержатся лаконичные данные в виде одного слова или одной цифры. Поэтому будет полезно иметь представление об удобных способах редактирования данных в ячейках экселя.
Пример ввода данных в ячейку excel.
Как соединить ячейки в excel
В первую очередь мы рассмотрим возможность объединить ячейки в excel. Чтобы сделать объединение ячеек в excel нужно сначала выделить две или более рядом стоящих ячеек:
Выделение ячеек excel для объединения.
Далее на вкладке Главная в группе Выравнивание нужно найти и нажать кнопку Объединить и поместить в центре:
Кнопка объединить ячейки в excel.
Соединить ячейки в excel можно как в одну ячейку, так и в несколько. Для этого на вкладке Главная в разделе Выравнивание нужно нажать на значок выпадающего списка справа от кнопки «Объединить и поместить в центре» и выбрать Объединить по строкам:
Объединить ячейки по строкам в excel.
Объединение ячеек в excel горячие клавиши
Сочетание клавиш объединить ячейки excel заменяет клавиша F4. Предварительно нужно сделать объединение ячеек, как описано выше, а в последующих просто выделять следующий диапазон ячеек и нажимать F4.
“
F4 – позволяет повторять последнее действие, в том числе объединение ячеек
Ещё один способ быстро объединять ячейки в эксель используя сочетания клавиш – это поместить кнопу в панель быстрого доступа. После этого Вы сможете вместе с Alt нажимать порядковый номер этой кнопки на панели быстрого доступа. Если кнопка первая, то Alt+1, если седьмая, то Alt+7 и т.д.
Горячая клавиша Объединить ячейки.
Если Вы объединяете не пустые ячейки, то имейте ввиду, что сохранятся будут только данные из первой ячейки слева. Данные из остальных ячеек будут стерты. Если это критично, то перед объединением потребуется обработка с помощью текстовых функций.
Как перенести строку в ячейке excel
Перенос строки в ячейке excel нужен, как правило, когда в ячейку помещают длинный текст.
По умолчанию автоматический перенос текста на новую строку отсутствует и текст продолжается вправо поверх пустых ячеек. Если справа расположены заполненные ячейки, то текст может стать невидим:
Различные варианты наложения текста.
Новая строка в ячейке excel будет появляться автоматически, если включить функцию Переносить текст. Для этого выделите нужную Вам ячейку, а затем на вкладке Главная в разделе Выравнивание нажмите на кнопку Переносить текст:
Excel перенос на новую строку в ячейке.
Переход в ячейке excel на новую строку можно делать вручную, не включая автоматический перенос текста. Сделать перенос текста на следующую строку ячейки excel можно нажав сочетание клавиш Alt+Enter.
Эксель перенос строки в ячейке.
“
Alt+Enter – перенос текста на следующую строку ячейки excel
Как выделить ячейки в excel
Однотипные преобразования, например изменение формата, размера, заливки и т.п. удобно производить не по одной ячейке, а сразу диапазоном из нескольких ячеек. Для этого в Excel есть несколько способов выделения ячеек.
Как выделить диапазон ячеек в excel
Самых простой и распространенный способ выделение ячеек в excel – это выделить диапазон смежных ячеек. Для этого можно кликнуть на самую левую верхнюю из нужных Вам ячеек левой клавишей мыши и тянуть вниз и вправо, до последней нужной.
Выделение диапазона ячеек в excel.
Если нужный Вам диапазон ячеек заполнен без пропусков, то можно пользоваться быстрым способом выделения диапазона ячеек:
Выделение до последнего заполненного значения вправо Ctrl+Shift+Вправо
Выделение до последнего заполненного значения вниз Ctrl+Shift+Вниз
В разделе Горячие Клавиши есть описание выделение всей строки и всего столбца
Как выделить несмежные ячейки в программе excel
Несмежными ячейками обычно называют расположенные не подряд. Выделение несмежных ячеек в excel можно производить с помощью удерживания клавиши Ctrl.
Например, чтобы выделить ячейки в excel через одну, нужно выделить первую ячейку, потом нажав и удерживая Ctrl, продолжить выделение остальных ячеек.
Как выделить определенные ячейки в excel.
Как выровнять ячейки в экселе
В основном выравнивание ячеек в excel по содержимому производится по высоте или по ширине ячейки.
Установить размеры для выделенных ячеек можно на вкладке Главная в группе Ячейки открыв ниспадающий список и выбрав Высота строки или Ширина строки.
Ширина и высота ячейки в эксель.
Ширину и высоту ячеек можно задавать просто сдвигая границы между названиями столбцов и строк:
Как изменить ширину и высоту ячейки в эксель
Чтобы выровнять ячейки по содержимому нужно учитывать, что изменение размера ячейки будет применено ко всему столбцу или строке. Обычно выравнивание ячейки применяется после ее заполнения, для пустой ячейки сделать автовыравнивание не получится. Рассмотрим подробнее автоподбор ширины и высоты ячеек в эксель.
Автоподбор ширины ячеек в excel
Чтобы сделать автоматический подбор ширины ячеек в эксель нужно выделить ячейку и на вкладке Главная в группе Ячейки открыть ниспадающий список и выбрать автоподбор ширины ячеек:
Как сделать автоподбор ширины ячеек в excel.
При таком способе произойдет выравнивание ширины всего столбца по содержимому выделенной ячейки. Если в столбе есть ячейки с содержимым шире, чем в выделенной, то они станут видны не полностью.
Если вы хотите сделать автоматический подбор по самой широкой ячейке в столбце, то можете просто дважды кликнуть на границу справа от названия нужного столбца:
Как сделать автоподбор ширины ячеек в excel по содержимому всего столбца
Автоподбор высоты ячеек в excel
Чтобы сделать автоподбор высоты ячеек в экселе нужно выделить ячейку и на вкладке Главная в группе Ячейки открыть ниспадающий список и выбрать автоподбор высоты ячеек:
Как сделать автоподбор высоты ячеек в excel.
И при автоподборе ширины и при автоподборе высоты ячеек можно выделять сразу несколько столбцов или строк, тогда автободбор будет происходить сразу в нескольких столбцах или строках.
Ещё у нас есть online курс Функции и форматирование, пройдя который Вы получите практические навыки в работе с самыми востребованными функциями Excel.
Огромное количество пользователей Excel допускает одну и ту же ошибку. Они путают два принципиально разных типа операций: внутри ячейки и за над ней самой. Но разница между ними огромная.
Дело в том, что каждая ячейка – это полнофункциональный элемент, который являет собой поле ввода с большим количеством возможностей. Туда вводятся формулы, числа, текст, логические операторы и так далее. Сам же текст можно оформлять: менять его размеры и начертание, а также расположение внутри ячейки.
Например, на этой картинке видно, что текст внутри ячейки окрашен в красный цвет и имеет жирное начертание.
При этом важно обратить внимание на тот факт, что ячейка, которая показана на картинке, в данный момент находится в режиме редактирования содержимого. Понять, в каком конкретно состоянии находится ячейка в вашем случае, можно с помощью текстового курсора внутри. Но даже если его не видно, то ячейка может быть в режиме редактирования. Понять это можно по наличию активных кнопок подтверждения и отмены ввода.
Важная особенность этого режима в том, что в нем невозможно совершать все возможные операции с ячейкой. Если посмотреть на панель инструментов ленты, то будет видно, что большая часть кнопок не активна. Вот в этом и выражена основная ошибка. Но давайте обо всем по порядку, начиная с самых азов и потом будем повышать уровень сложности, чтобы каждый мог почерпнуть что-то полезное.
Содержание
- Базовые понятия
- Основные операции с ячейками
- Выделение ячеек в один диапазон
- Объединение ячеек
- Разделение ячеек
- Поиск ячейки
- Работа с содержимым ячеек Excel
- Арифметические операции
- Использование формул в Excel
- Ошибки при вводе формулы в ячейку
- Горячие клавиши
- Настройки оформления ячейки
- Границы
- Цвет заливки
- Стили ячеек
Базовые понятия
Итак, основным элементом таблицы является ячейка. Она находится на пересечении колонки и строки, и поэтому у нее есть свой адрес, который можно использовать в формулах для того, чтобы указать на нее, достать определенные данные и так далее.
Например, ячейка с адресом B3 имеет следующие координаты: строка 3, столбец 2. Увидеть его можно в левом верхнем углу, непосредственно под меню навигации.
Второе важное понятие – рабочая книга. Это документ, открытый пользователем, который содержит перечень листов, какие в свою очередь состоят из ячеек. Любой новый документ изначально не содержит никакой информации, а в соответствующем поле вино адрес ячейки, выделенной на текущий момент.
Также отображается имя колонки и строки. Когда одна из ячеек выделена, на координатной панели соответствующие элементы будут выделены оранжевым цветом.
Чтобы ввести информацию, необходимо, как мы уже поняли выше, перейти в режим редактирования. Нужно выделить соответствующую ячейку путем левого клика по ней, а потом просто вводить данные. Также можно перемещаться между разными ячейками с использованием клавиатуры с помощью кнопок со стрелками.
Основные операции с ячейками
Выделение ячеек в один диапазон
Группировка информации в Excel осуществляется по специальному диапазону. В этом случае выделяется сразу несколько ячеек, а также, соответственно, строк и колонок. Если выделить их, отображается целая область, а в строке адреса приводится обобщенная информация по всем выделенным ячейкам.
Объединение ячеек
После того, как ячейки были выделены, теперь их можно объединять. Рекомендуется перед тем, как это делать, скопировать выделенный диапазон путем нажатия комбинации клавиш Ctrl+C и перенести в другое место с помощью клавиш Ctrl+V. Таким образом можно сохранить резервную копию данных. Это обязательно надо делать, поскольку при объединении ячеек вся содержащаяся в них информация стирается. И чтобы ее восстановить, необходимо иметь ее копию.
Далее необходимо нажать на кнопку, показанную на скриншоте. Там перечислено несколько способов объединения ячеек. Вам нужно выбрать тот, который больше всего подходит по ситуации.
Поиску требуемой кнопки. В навигационном меню нужно на вкладке «Главная» найти кнопку, которая была отмечена на предыдущем скриншоте, и отобразить выпадающий список. Мы выбрали пункт «Объединить и поместить в центре». Если эта кнопка неактивна, то нужно выйти из режима редактирования. Это можно сделать путем нажатия клавиши «Ввод».
Если нужно скорректировать положение текста в получившейся большой ячейке, это можно сделать с помощью свойств выравнивания, которые находятся на вкладке «Главная».
Разделение ячеек
Это довольно простая процедура, которая в чем-то повторяет предыдущий пункт:
- Выбор ячейки, которая раньше была создана в результате объединения нескольких других ячеек. Разделение других не представляется возможным.
- После того, как будет выделен объединенный блок, клавиша объединения загорится. После того, как по ней кликнуть, все ячейки будут разделены. Каждая из них получит свой собственный адрес. Пересчет строк и столбцов произойдет автоматически.
Поиск ячейки
Очень легко не заметить важную информацию, когда приходится работать с большими объемами данных. Чтобы решить эту проблему, можно воспользоваться поиском. Причем искать можно не только слова, но и формулы, объединенные блоки и все, что угодно. Для этого необходимо выполнить следующие действия:
- Убедиться, что открыта вкладка «Главная». Там есть область «Редактирование», где можно найти клавишу «Найти и выделить».
- После этого откроется диалоговое окно с полем ввода, в который можно ввести то значение, которое надо. Также там есть возможность указать дополнительные параметры. Например, если нужно найти объединенные ячейки, необходимо нажать на «Параметры» – «Формат» – «Выравнивание», и поставить флажок возле поиска объединенных ячеек.
- В специальном окошке будет выводиться необходимая информация.
Также есть функция «Найти все», чтобы осуществить поиск всех объединенных ячеек.
Работа с содержимым ячеек Excel
Здесь мы рассмотрим некоторые функции, позволяющие работать с вводимым текстом, функциями или числами, как осуществлять операции копирования, перемещения и размножения. Давайте рассмотрим по порядку каждую из них.
- Ввод. Здесь все просто. Нужно выделить нужную ячейку и просто начать писать.
- Удаление информации. Для этого можно использовать как клавишу Delete, так и Backspace. Также в панели «Редактирование» можно воспользоваться клавишей ластика.
- Копирование. Очень удобно его осуществлять с помощью горячих клавиш Ctrl+C и вставлять скопированную информацию в необходимое место с помощью комбинации Ctrl+V. Таким образом можно осуществлять быстрое размножение данных. Его можно использовать не только в Excel, но и почти любой программе под управлением Windows. Если было осуществлено неправильное действие (например, был вставлен неверный фрагмент текста), можно откатиться назад путем нажатия комбинации Ctrl+Z.
- Вырезание. Осуществляется с помощью комбинации Ctrl+X, после чего нужно вставить данные в нужное место с помощью тех же горячих клавиш Ctrl+V. Отличие вырезания от копирования заключается в том, что при последнем данные сохраняются на первом месте, в то время как вырезанный фрагмент остается лишь на том месте, куда его вставили.
- Форматирование. Ячейки можно менять как снаружи, так и внутри. Доступ ко всем необходимым параметрам можно получить путем нажатия правой кнопкой мыши по необходимой ячейке. Появится контекстное меню со всеми настройками.
Арифметические операции
Excel – это в первую очередь функциональный калькулятор, который позволяет осуществлять многоуровневые расчеты. Особенно это полезно для бухгалтерского учета. Эта программа позволяет совершать все мыслимые и немыслимые операции с числами. Поэтому нужно понимать, как работают различные функции и знаки, которые могут записываться в ячейку.
В первую очередь, нужно разобраться в обозначениях, которые указывают на ту или иную арифметическую операцию:
- + – сложение.
- – – вычитание.
- * – умножение.
- / – деление.
- ^ – возведение в степень.
- % – процент.
Начинать ввод формулы в ячейке следует со знака «равно». Например,
=7+6
После того, как вы нажмете кнопку «ВВОД» данные автоматически подсчитываются, и в ячейке отображается результат. Если в результате вычисления оказывается, что после запятой огромное количество цифр, то уменьшить разрядность можно с помощью специальной кнопки на вкладке «Главная» в разделе «Число».
Использование формул в Excel
Если необходимо составить итоговый баланс, то недостаточно одного лишь сложения. Ведь он состоит из огромного числа данных. По этой причине разработаны технологии, дающие возможность всего в пару кликов создать таблицу.
Чтобы было более наглядно, давайте создадим такую простую таблицу с данными, где надо рассчитать сразу несколько значений.
Чтобы получить итоговый результат достаточно просто просуммировать значения по каждой товарной позиции за первые две недели. Это легко, потому что можно и вручную ввести небольшое количество данных. Но что, тоже руками получать сумму? Что же нужно сделать для того, чтобы систематизировать имеющуюся информацию?
Если использовать формулу в ячейке, можно выполнять даже самые сложные вычисления, а также программировать документ на выполнение тех действий, которые требуются.
Причем формулу можно выбрать прямо из меню, который вызывается нажатием кнопки fx. Мы в диалоговом окне выбрали функцию СУММ. Чтобы подтвердить действие, необходимо нажать кнопку «Enter». Перед тем, как пользоваться функциями на деле, рекомендуется немного потренироваться в песочнице. То есть, создать тестовый документ, где немного отрабатывать различные формулы и смотреть, как они работают.
Ошибки при вводе формулы в ячейку
В результате ввода формулы могут возникать разные ошибки:
- ##### – эта ошибка выдается, если при вводе даты или времени получается значение, ниже нуля. Также она может показываться, если места в ячейке недостаточно, чтобы вместить все данные.
- #Н/Д – эта ошибка появляется если не получается определить данные, а также при нарушении порядка ввода аргументов функции.
- #ССЫЛКА! В этом случае Excel сообщает, что был указан неверный адрес столбца или строки.
- #ПУСТО! Ошибка показывается, если арифметическая функция была построена неверно.
- #ЧИСЛО! Если число чрезмерно маленькое или большое.
- #ЗНАЧ! Говорит о том, что используется неподдерживаемый тип данных. Такое может происходить, если в одной ячейке, которая используется для формулы, текст, а в другой – цифры. В таком случае типы данных не соответствуют друг другу и Excel начинает ругаться.
- #ДЕЛ/0! – невозможность деления на ноль.
- #ИМЯ? – невозможно распознать имя функции. Например, там указана ошибка.
Горячие клавиши
Горячие клавиши позволяют облегчить жизнь, особенно если однотипные действия приходится часто повторять. Самые популярные горячие клавиши следующие:
- CTRL + стрелка на клавиатуре – выбор всех ячеек, которые находятся в соответствующей строке или колонке.
- CTRL + SHIFT + «+» – вставка времени, которое на часах в данный момент.
- CTRL + ; – вставка текущей даты с функцией автоматической фильтрации соответственно правилам Excel.
- CTRL + A – выделение всех ячеек.
Настройки оформления ячейки
Правильно выбранное оформление ячейки позволяет сделать ее более привлекательной, а диапазон – удобно читаемым. Есть несколько параметров оформления ячейки, которые можно настраивать.
Границы
В спектр возможностей электронных таблиц входит также и настройках границ. Для этого надо нажать на интересующие ячейки и открыть вкладку «Главная», где нажать на стрелку, расположенную справа от кнопки «Границы». После этого появится меню, в котором можно задать необходимые свойства границ.
Границы можно и нарисовать. Для этого нужно найти пункт «Нарисовать границы», который располагается в этом всплывающем меню.
Цвет заливки
Для начала нужно те ячейки, которые надо залить определенным цветом, выделить. После этого необходимо на вкладке «Главная» найти стрелку, расположенную справ от пункта «Цвет заливки». Появится всплывающее меню со списком цветов. Достаточно просто выбрать нужный оттенок, и ячейка автоматически заполнится.
Лайфхак: если навести курсор на разные цвета, можно увидеть, какой будет внешний вид ячейки после того, как ее зальют определенным цветом.
Стили ячеек
Стили ячеек – уже готовые варианты дизайна, которые можно добавить в пару кликов. Найти меню можно во вкладке «Главная» в разделе «стили ячеек».
Оцените качество статьи. Нам важно ваше мнение:
Таблицы Excel — очень мощный инструмент. В них больше 470 скрытых функций. Поначалу это пугает: кажется, на то, чтобы разобраться со всем, уйдут годы. На самом деле это не так. Всего десятка функций и горячих клавиш уже хватит для того, чтобы сильно упростить себе жизнь. Расскажем о некоторых из них (скоро стартует второй поток курса «Магия Excel»).
Интерфейс
Настраиваем панель быстрого доступа
Начнем с самого простого — добавления самых часто используемых опций на панель быстрого доступа. Чтобы сделать это, заходите в параметры Excel — «Настроить ленту» — и ищите в параметрах «Панель быстрого доступа».
Опции, перенесенные на панель быстрого доступа, будут доступны при работе со всеми вашими книгами Excel (хотя можно ее настроить и отдельно для любой книги). Так что если пользуетесь какими-то командами и инструментами постоянно — добавляйте их туда.
Другой вариант — просто щелкнуть по инструменту на ленте правой кнопкой мыши и нажать «Добавить…»:
Перемещаемся по ленте без мышки
Нажмите на Alt. На ленте инструментов появились цифры и буквы — у каждого инструмента на панели быстрого доступа и у каждой вкладки на ленте соответственно:
Нажмите на клавиатуре любую из букв — попадете на соответствующую вкладку на ленте, а там каждый инструмент в свою очередь тоже будет подписан. Так можно быстро вызвать нужные опции, не трогая мышку.
Ввод данных
Теперь давайте рассмотрим несколько инструментов для быстрого ввода данных.
Автозамена
Если вам часто нужно вводить какое-то словосочетание, адрес, емейл и так далее — придумайте для него короткое обозначение и добавьте в список автозамены в Параметрах:
Прогрессия
Если нужно заполнить столбец или строку последовательностью чисел или дат, введите в ячейку первое значение и затем воспользуйтесь этим инструментом:
Протягивание
Представьте, что вам нужно извлечь какие-то данные из целого столбца или переписать их в другом виде (например, фамилию с инициалами вместо полных ФИО). Задайте Excel одну ячейку с образцом — что хотите получить:
Выделите все ячейки, которые хотите заполнить по образцу, — и нажмите Ctrl+E. И магия случится (ну, в большинстве случаев).
Проверка ошибок
Проверка данных позволяет избежать ошибок при вводе информации в ячейки.
Какие бывают типовые ошибки в Excel?
- Текст вместо чисел
- Отрицательные числа там, где их быть не может
- Числа с дробной частью там, где должны быть целые
- Текст вместо даты
- Разные варианты написания одного и того же значения. Например, сокращения («ЭБ» вместо «Электронная библиотека»), лишние пробелы в конце текстового значения или между словами — всего этого достаточно, чтобы превратить текстовые значения в разные и, соответственно, чтобы они обрабатывались Excel некорректно.
Инструмент проверки данных
Чтобы использовать инструмент проверки данных, нужно выделить ячейки, к которым хотите его применить, выбрать на ленте «Данные» → «Проверка данных» и настроить параметры проверки в диалоговом окне:
Если в графе «Сообщение об ошибке» вы выбрали вариант «Остановка», то после проверки в ячейки нельзя будет ввести значения, не соответствующие заданному правилу.
Если же вы выбрали «Предупреждение» или «Сообщение», то при попытке ввести неверные данные будет появляться предупреждение, но его можно будет проигнорировать и все равно ввести что угодно.
Еще неверные данные можно обвести, чтобы точно увидеть, где есть ошибки:
Удаление пробелов
Для удаления лишних пробелов (в начале, в конце и всех кроме одного между слов) используйте функцию СЖПРОБЕЛЫ / TRIM. Ее единственный аргумент — текст (ссылка на ячейку с текстом, как правило).
Если после очистки данных функцией СЖПРОБЕЛЫ или другой обработки вам не нужен исходный столбец, вставьте данные, полученные в отдельном столбце с помощью функций, как значения на место исходных данных, а столбец с формулой удалите:
Дата и время
За любой датой в Excel скрывается целое число. Датой его делает формат.
Аналогично со временем: одна единица — это день, а часть единицы (число от 0 до 1) — время, то есть часть дня.
Это не значит, что так имеет смысл вводить даты и время в ячейки, вводите их в любом из стандартных форматов — Excel сразу отформатирует их как даты:
ДД.ММ.ГГГГ
ДД/ММ/ГГГГ
ГГГГ-ММ-ДД
С датами можно производить операции вычитания и сложения.
Вычесть из одной даты другую, чтобы получить разницу в днях (результатом вычитания будет число — количество дней.
Прибавить к дате число — и получить дату, которая наступит через соответствующее количество дней.
Поиск и подстановка значений
Функция ВПР / VLOOKUP
Функция ВПР / VLOOKUP (вертикальный просмотр) нужна, чтобы связать несколько таблиц — «подтянуть» данные из одной в другую по какому-то ключу (например, названию товара или бренда, фамилии сотрудника или клиента, номеру транзакции).
=ВПР (что ищем; таблица с данными, где «что ищем» должно быть в первом столбце; номер столбца таблицы, из которого нужны данные; [интервальный просмотр])
У нее есть два режима работы: интервальный просмотр и точный поиск.
Интервальный просмотр — это поиск интервала, в который попадает число. Если у вас прогрессивная шкала налога или скидок, нужно конвертировать оценку из одной системы в другую и так далее — используется именно этот режим. Для интервального просмотра нужно пропустить последний аргумент ВПР или задать его равным единице (или ИСТИНА).
В большинстве случаев мы связываем таблицы по текстовым ключам — в таком случае нужно обязательно явным образом указывать последний аргумент «интервальный_просмотр» равным нулю (или ЛОЖЬ). Только тогда функция будет корректно работать с текстовыми значениями.
Функции ПОИСКПОЗ / MATCH и ИНДЕКС / INDEX
У ВПР есть существенный недостаток: ключ (искомое значение) обязан быть в первом столбце таблицы с данными. Все, что левее этого столбца, через ВПР «подтянуть» невозможно.
В реальных условиях структура таблиц бывает разной и не всегда возможно изменить порядок столбцов. Поэтому важно уметь работать с любой структурой.
Функция ПОИСКПОЗ / MATCH определяет порядковый номер значения в диапазоне. Ее синтаксис:
=ПОИСКПОЗ (что ищем; где ищем ; 0)
На выходе — число (номер строки или столбца в рамках диапазона, в котором находится искомое значение).
ИНДЕКС / INDEX выполняет другую задачу — возвращает элемент по его номеру.
=ИНДЕКС(диапазон, из которого нужны данные; порядковый номер элемента)
Соответственно, мы можем определить номер строки, в котором находится искомое значение, с помощью ПОИСКПОЗ. А затем подставить этот номер в ИНДЕКС на место второго аргумента, чтобы получить данные из любого нужного нам столбца.
Получается следующая конструкция:
=ИНДЕКС(диапазон, из которого нужны данные; ПОИСКПОЗ (что ищем; где ищем ; 0))
Оформление
Нужно оформить ячейки в книге Excel в едином стиле? Для этого есть одноименный инструмент — «Стили».
На ленте инструментов нажмите на «Стили ячеек» и выберите подходящий. Он будет применен к выделенным ячейкам:
А самое главное — если вы применили стиль ко многим ячейкам (например, ко всем заголовкам на 20 листах книги Excel) и захотели что-то переделать, щелкните правой кнопкой мыши и нажмите «Изменить». Изменения будут применены ко всем нужным ячейкам в документе.
На курсе «Магия Excel» будет два модуля — для новичков и продвинутых. Записывайтесь→
Фото на обложке отсюда
Всё о работе с ячейками в Excel-VBA: обращение, перебор, удаление, вставка, скрытие, смена имени.
Содержание:
Table of Contents:
- Что такое ячейка Excel?
- Способы обращения к ячейкам
- Выбор и активация
- Получение и изменение значений ячеек
- Ячейки открытой книги
- Ячейки закрытой книги
- Перебор ячеек
- Перебор в произвольном диапазоне
- Свойства и методы ячеек
- Имя ячейки
- Адрес ячейки
- Размеры ячейки
- Запуск макроса активацией ячейки
2 нюанса:
- Я почти везде стараюсь использовать ThisWorkbook (а не, например, ActiveWorkbook) для обращения к текущей книге, в которой написан этот код (считаю это наиболее безопасным для новичков способом обращения к книгам, чтобы случайно не внести изменения в другие книги). Для экспериментов можете вставлять этот код в модули, коды книги, либо листа, и он будет работать только в пределах этой книги.
- Я использую английский эксель и у меня по стандарту листы называются Sheet1, Sheet2 и т.д. Если вы работаете в русском экселе, то замените Thisworkbook.Sheets(«Sheet1») на Thisworkbook.Sheets(«Лист1»). Если этого не сделать, то вы получите ошибку в связи с тем, что пытаетесь обратиться к несуществующему объекту. Можно также заменить на Thisworkbook.Sheets(1), но это менее безопасно.
Что такое ячейка Excel?
В большинстве мест пишут: «элемент, образованный пересечением столбца и строки». Это определение полезно для людей, которые не знакомы с понятием «таблица». Для того, чтобы понять чем на самом деле является ячейка Excel, необходимо заглянуть в объектную модель Excel. При этом определения объектов «ряд», «столбец» и «ячейка» будут отличаться в зависимости от того, как мы работаем с файлом.
Объекты в Excel-VBA. Пока мы работаем в Excel без углубления в VBA определение ячейки как «пересечения» строк и столбцов нам вполне хватает, но если мы решаем как-то автоматизировать процесс в VBA, то о нём лучше забыть и просто воспринимать лист как «мешок» ячеек, с каждой из которых VBA позволяет работать как минимум тремя способами:
- по цифровым координатам (ряд, столбец),
- по адресам формата А1, B2 и т.д. (сценарий целесообразности данного способа обращения в VBA мне сложно представить)
- по уникальному имени (во втором и третьем вариантах мы будем иметь дело не совсем с ячейкой, а с объектом VBA range, который может состоять из одной или нескольких ячеек). Функции и методы объектов Cells и Range отличаются. Новичкам я бы порекомендовал работать с ячейками VBA только с помощью Cells и по их цифровым координатам и использовать Range только по необходимости.
Все три способа обращения описаны далее
Как это хранится на диске и как с этим работать вне Excel? С точки зрения хранения и обработки вне Excel и VBA. Сделать это можно, например, сменив расширение файла с .xls(x) на .zip и открыв этот архив.
Пример содержимого файла Excel:
Далее xl -> worksheets и мы видим файл листа
Содержимое файла:
То же, но более наглядно:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision" xmlns:xr2="http://schemas.microsoft.com/office/spreadsheetml/2015/revision2" xmlns:xr3="http://schemas.microsoft.com/office/spreadsheetml/2016/revision3" xr:uid="{00000000-0001-0000-0000-000000000000}">
<dimension ref="B2:F6"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="D12" sqref="D12"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="14.4" x14ac:dyDescent="0.3"/>
<sheetData>
<row r="2" spans="2:6" x14ac:dyDescent="0.3">
<c r="B2" t="s">
<v>0</v>
</c>
</row>
<row r="3" spans="2:6" x14ac:dyDescent="0.3">
<c r="C3" t="s">
<v>1</v>
</c>
</row>
<row r="4" spans="2:6" x14ac:dyDescent="0.3">
<c r="D4" t="s">
<v>2</v>
</c>
</row>
<row r="5" spans="2:6" x14ac:dyDescent="0.3">
<c r="E5" t="s">
<v>0</v></c>
</row>
<row r="6" spans="2:6" x14ac:dyDescent="0.3">
<c r="F6" t="s"><v>3</v>
</c></row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>
Как мы видим, в структуре объектной модели нет никаких «пересечений». Строго говоря рабочая книга — это архив структурированных данных в формате XML. При этом в каждую «строку» входит «столбец», и в нём в свою очередь прописан номер значения данного столбца, по которому оно подтягивается из другого XML файла при открытии книги для экономии места за счёт отсутствия повторяющихся значений. Почему это важно. Если мы захотим написать какой-то обработчик таких файлов, который будет напрямую редактировать данные в этих XML, то ориентироваться надо на такую модель и структуру данных. И правильное определение будет примерно таким: ячейка — это объект внутри столбца, который в свою очередь находится внутри строки в файле xml, в котором хранятся данные о содержимом листа.
Способы обращения к ячейкам
Выбор и активация
Почти во всех случаях можно и стоит избегать использования методов Select и Activate. На это есть две причины:
- Это лишь имитация действий пользователя, которая замедляет выполнение программы. Работать с объектами книги можно напрямую без использования методов Select и Activate.
- Это усложняет код и может приводить к неожиданным последствиям. Каждый раз перед использованием Select необходимо помнить, какие ещё объекты были выбраны до этого и не забывать при необходимости снимать выбор. Либо, например, в случае использования метода Select в самом начале программы может быть выбрано два листа вместо одного потому что пользователь запустил программу, выбрав другой лист.
Можно выбирать и активировать книги, листы, ячейки, фигуры, диаграммы, срезы, таблицы и т.д.
Отменить выбор ячеек можно методом Unselect:
Selection.Unselect
Отличие выбора от активации — активировать можно только один объект из раннее выбранных. Выбрать можно несколько объектов.
Если вы записали и редактируете код макроса, то лучше всего заменить Select и Activate на конструкцию With … End With. Например, предположим, что мы записали вот такой макрос:
Sub Macro1()
' Macro1 Macro
Range("F4:F10,H6:H10").Select 'выбрали два несмежных диапазона зажав ctrl
Range("H6").Activate 'показывает только то, что я начал выбирать второй диапазон с этой ячейки (она осталась белой). Это действие ни на что не влияет
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535 'залили желтым цветом, нажав на кнопку заливки на верхней панели
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Почему макрос записался таким неэффективным образом? Потому что в каждый момент времени (в каждой строке) программа не знает, что вы будете делать дальше. Поэтому в записи выбор ячеек и действия с ними — это два отдельных действия. Этот код лучше всего оптимизировать (особенно если вы хотите скопировать его внутрь какого-нибудь цикла, который должен будет исполняться много раз и перебирать много объектов). Например, так:
Sub Macro11()
'
' Macro1 Macro
Range("F4:F10,H6:H10").Select '1. смотрим, что за объект выбран (что идёт до .Select)
Range("H6").Activate
With Selection.Interior '2. понимаем, что у выбранного объекта есть свойство interior, с которым далее идёт работа
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Sub Optimized_Macro()
With Range("F4:F10,H6:H10").Interior '3. переносим объект напрямую в конструкцию With вместо Selection
' ////// Здесь я для надёжности прописал бы ещё Thisworkbook.Sheet("ИмяЛиста") перед Range,
' ////// чтобы минимизировать риск любых случайных изменений других листов и книг
' ////// With Thisworkbook.Sheet("ИмяЛиста").Range("F4:F10,H6:H10").Interior
.Pattern = xlSolid '4. полностью копируем всё, что было записано рекордером внутрь блока with
.PatternColorIndex = xlAutomatic
.Color = 55555 '5. здесь я поменял цвет на зеленый, чтобы было видно, работает ли код при поочерёдном запуске двух макросов
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Пример сценария, когда использование Select и Activate оправдано:
Допустим, мы хотим, чтобы во время исполнения программы мы одновременно изменяли несколько листов одним действием и пользователь видел какой-то определённый лист. Это можно сделать примерно так:
Sub Select_Activate_is_OK()
Thisworkbook.Worksheets(Array("Sheet1", "Sheet3")).Select 'Выбираем несколько листов по именам
Thisworkbook.Worksheets("Sheet3").Activate 'Показываем пользователю третий лист
'Далее все действия с выбранными ячейками через Select будут одновременно вносить изменения в оба выбранных листа
'Допустим, что тут мы решили покрасить те же два диапазона:
Range("F4:F10,H6:H10").Select
Range("H6").Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Единственной причиной использовать этот код по моему мнению может быть желание зачем-то показать пользователю определённую страницу книги в какой-то момент исполнения программы. С точки зрения обработки объектов, опять же, эти действия лишние.
Получение и изменение значений ячеек
Значение ячеек можно получать/изменять с помощью свойства value.
'Если нужно прочитать / записать значение ячейки, то используется свойство Value
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value 'записать значение ячейки А1 листа "Sheet1" в переменную "a"
ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value = 1 'задать значение ячейки А1 (первый ряд, первый столбец) листа "Sheet1"
'Если нужно прочитать текст как есть (с форматированием), то можно использовать свойство .text:
ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text = "1"
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text
'Когда проявится разница:
'Например, если мы считываем дату в формате "31 декабря 2021 г.", хранящуюся как дата
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Value 'эапишет как "31.12.2021"
a = ThisWorkbook.Sheets("Sheet1").Cells (1,1).Text 'запишет как "31 декабря 2021 г."
Ячейки открытой книги
К ячейкам можно обращаться:
'В книге, в которой хранится макрос (на каком-то из листов, либо в отдельном модуле или форме)
ThisWorkbook.Sheets("Sheet1").Cells(1,1).Value 'По номерам строки и столбца
ThisWorkbook.Sheets("Sheet1").Cells(1,"A").Value 'По номерам строки и букве столбца
ThisWorkbook.Sheets("Sheet1").Range("A1").Value 'По адресу - вариант 1
ThisWorkbook.Sheets("Sheet1").[A1].Value 'По адресу - вариант 2
ThisWorkbook.Sheets("Sheet1").Range("CellName").Value 'По имени ячейки (для этого ей предварительно нужно его присвоить)
'Те же действия, но с использованием полного названия рабочей книги (книга должна быть открыта)
Workbooks("workbook.xlsm").Sheets("Sheet1").Cells(1,1).Value 'По номерам строки и столбца
Workbooks("workbook.xlsm").Sheets("Sheet1").Cells(1,"A").Value 'По номерам строки и букве столбца
Workbooks("workbook.xlsm").Sheets("Sheet1").Range("A1").Value 'По адресу - вариант 1
Workbooks("workbook.xlsm").Sheets("Sheet1").[A1].Value 'По адресу - вариант 2
Workbooks("workbook.xlsm").Sheets("Sheet1").Range("CellName").Value 'По имени ячейки (для этого ей предварительно нужно его присвоить)
Ячейки закрытой книги
Если нужно достать или изменить данные в другой закрытой книге, то необходимо прописать открытие и закрытие книги. Непосредственно работать с закрытой книгой не получится, потому что данные в ней хранятся отдельно от структуры и при открытии Excel каждый раз производит расстановку значений по соответствующим «слотам» в структуре. Подробнее о том, как хранятся данные в xlsx см выше.
Workbooks.Open Filename:="С:closed_workbook.xlsx" 'открыть книгу (она становится активной)
a = ActiveWorkbook.Sheets("Sheet1").Cells(1,1).Value 'достать значение ячейки 1,1
ActiveWorkbook.Close False 'закрыть книгу (False => без сохранения)
Скачать пример, в котором можно посмотреть, как доставать и как записывать значения в закрытую книгу.
Код из файла:
Option Explicit
Sub get_value_from_closed_wb() 'достать значение из закрытой книги
Dim a, wb_path, wsh As String
wb_path = ThisWorkbook.Sheets("Sheet1").Cells(2, 3).Value 'get path to workbook from sheet1
wsh = ThisWorkbook.Sheets("Sheet1").Cells(3, 3).Value
Workbooks.Open Filename:=wb_path
a = ActiveWorkbook.Sheets(wsh).Cells(3, 3).Value
ActiveWorkbook.Close False
ThisWorkbook.Sheets("Sheet1").Cells(4, 3).Value = a
End Sub
Sub record_value_to_closed_wb() 'записать значение в закрытую книгу
Dim wb_path, b, wsh As String
wsh = ThisWorkbook.Sheets("Sheet1").Cells(3, 3).Value
wb_path = ThisWorkbook.Sheets("Sheet1").Cells(2, 3).Value 'get path to workbook from sheet1
b = ThisWorkbook.Sheets("Sheet1").Cells(5, 3).Value 'get value to record in the target workbook
Workbooks.Open Filename:=wb_path
ActiveWorkbook.Sheets(wsh).Cells(4, 4).Value = b 'add new value to cell D4 of the target workbook
ActiveWorkbook.Close True
End Sub
Перебор ячеек
Перебор в произвольном диапазоне
Скачать файл со всеми примерами
Пройтись по всем ячейкам в нужном диапазоне можно разными способами. Основные:
- Цикл For Each. Пример:
Sub iterate_over_cells() For Each c In ThisWorkbook.Sheets("Sheet1").Range("B2:D4").Cells MsgBox (c) Next c End Sub
Этот цикл выведет в виде сообщений значения ячеек в диапазоне B2:D4 по порядку по строкам слева направо и по столбцам — сверху вниз. Данный способ можно использовать для действий, в который вам не важны номера ячеек (закрашивание, изменение форматирования, пересчёт чего-то и т.д.).
- Ту же задачу можно решить с помощью двух вложенных циклов — внешний будет перебирать ряды, а вложенный — ячейки в рядах. Этот способ я использую чаще всего, потому что он позволяет получить больше контроля над исполнением: на каждой итерации цикла нам доступны координаты ячеек. Для перебора всех ячеек на листе этим методом потребуется найти последнюю заполненную ячейку. Пример кода:
Sub iterate_over_cells() Dim cl, rw As Integer Dim x As Variant 'перебор области 3x3 For rw = 1 To 3 ' цикл для перебора рядов 1-3 For cl = 1 To 3 'цикл для перебора столбцов 1-3 x = ThisWorkbook.Sheets("Sheet1").Cells(rw + 1, cl + 1).Value MsgBox (x) Next cl Next rw 'перебор всех ячеек на листе. Последняя ячейка определена с помощью UsedRange 'LastRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1 'LastCol = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1 'For rw = 1 To LastRow 'цикл перебора всех рядов ' For cl = 1 To LastCol 'цикл для перебора всех столбцов ' Действия ' Next cl 'Next rw End Sub
- Если нужно перебрать все ячейки в выделенном диапазоне на активном листе, то код будет выглядеть так:
Sub iterate_cell_by_cell_over_selection() Dim ActSheet As Worksheet Dim SelRange As Range Dim cell As Range Set ActSheet = ActiveSheet Set SelRange = Selection 'if we want to do it in every cell of the selected range For Each cell In Selection MsgBox (cell.Value) Next cell End Sub
Данный метод подходит для интерактивных макросов, которые выполняют действия над выбранными пользователем областями.
- Перебор ячеек в ряду
Sub iterate_cells_in_row() Dim i, RowNum, StartCell As Long RowNum = 3 'какой ряд StartCell = 0 ' номер начальной ячейки (минус 1, т.к. в цикле мы прибавляем i) For i = 1 To 10 ' 10 ячеек в выбранном ряду ThisWorkbook.Sheets("Sheet1").Cells(RowNum, i + StartCell).Value = i '(i + StartCell) добавляет 1 к номеру столбца при каждом повторении Next i End Sub
- Перебор ячеек в столбце
Sub iterate_cells_in_column() Dim i, ColNum, StartCell As Long ColNum = 3 'какой столбец StartCell = 0 ' номер начальной ячейки (минус 1, т.к. в цикле мы прибавляем i) For i = 1 To 10 ' 10 ячеек ThisWorkbook.Sheets("Sheet1").Cells(i + StartCell, ColNum).Value = i ' (i + StartCell) добавляет 1 к номеру ряда при каждом повторении Next i End Sub
Свойства и методы ячеек
Имя ячейки
Присвоить новое имя можно так:
Thisworkbook.Sheets(1).Cells(1,1).name = "Новое_Имя"
Для того, чтобы сменить имя ячейки нужно сначала удалить существующее имя, а затем присвоить новое. Удалить имя можно так:
ActiveWorkbook.Names("Старое_Имя").Delete
Пример кода для переименования ячеек:
Sub rename_cell()
old_name = "Cell_Old_Name"
new_name = "Cell_New_Name"
ActiveWorkbook.Names(old_name).Delete
ThisWorkbook.Sheets(1).Cells(2, 1).Name = new_name
End Sub
Sub rename_cell_reverse()
old_name = "Cell_New_Name"
new_name = "Cell_Old_Name"
ActiveWorkbook.Names(old_name).Delete
ThisWorkbook.Sheets(1).Cells(2, 1).Name = new_name
End Sub
Адрес ячейки
Sub get_cell_address() ' вывести адрес ячейки в формате буква столбца, номер ряда
'$A$1 style
txt_address = ThisWorkbook.Sheets(1).Cells(3, 2).Address
MsgBox (txt_address)
End Sub
Sub get_cell_address_R1C1()' получить адрес столбца в формате номер ряда, номер столбца
'R1C1 style
txt_address = ThisWorkbook.Sheets(1).Cells(3, 2).Address(ReferenceStyle:=xlR1C1)
MsgBox (txt_address)
End Sub
'пример функции, которая принимает 2 аргумента: название именованного диапазона и тип желаемого адреса
'(1- тип $A$1 2- R1C1 - номер ряда, столбца)
Function get_cell_address_by_name(str As String, address_type As Integer)
'$A$1 style
Select Case address_type
Case 1
txt_address = Range(str).Address
Case 2
txt_address = Range(str).Address(ReferenceStyle:=xlR1C1)
Case Else
txt_address = "Wrong address type selected. 1,2 available"
End Select
get_cell_address_by_name = txt_address
End Function
'перед запуском нужно убедиться, что в книге есть диапазон с названием,
'адрес которого мы хотим получить, иначе будет ошибка
Sub test_function() 'запустите эту программу, чтобы увидеть, как работает функция
x = get_cell_address_by_name("MyValue", 2)
MsgBox (x)
End Sub
Размеры ячейки
Ширина и длина ячейки в VBA меняется, например, так:
Sub change_size()
Dim x, y As Integer
Dim w, h As Double
'получить координаты целевой ячейки
x = ThisWorkbook.Sheets("Sheet1").Cells(2, 2).Value
y = ThisWorkbook.Sheets("Sheet1").Cells(3, 2).Value
'получить желаемую ширину и высоту ячейки
w = ThisWorkbook.Sheets("Sheet1").Cells(6, 2).Value
h = ThisWorkbook.Sheets("Sheet1").Cells(7, 2).Value
'сменить высоту и ширину ячейки с координатами x,y
ThisWorkbook.Sheets("Sheet1").Cells(x, y).RowHeight = h
ThisWorkbook.Sheets("Sheet1").Cells(x, y).ColumnWidth = w
End Sub
Прочитать значения ширины и высоты ячеек можно двумя способами (однако результаты будут в разных единицах измерения). Если написать просто Cells(x,y).Width или Cells(x,y).Height, то будет получен результат в pt (привязка к размеру шрифта).
Sub get_size()
Dim x, y As Integer
'получить координаты ячейки, с которой мы будем работать
x = ThisWorkbook.Sheets("Sheet1").Cells(2, 2).Value
y = ThisWorkbook.Sheets("Sheet1").Cells(3, 2).Value
'получить длину и ширину выбранной ячейки в тех же единицах измерения, в которых мы их задавали
ThisWorkbook.Sheets("Sheet1").Cells(2, 6).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).ColumnWidth
ThisWorkbook.Sheets("Sheet1").Cells(3, 6).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).RowHeight
'получить длину и ширину с помощью свойств ячейки (только для чтения) в поинтах (pt)
ThisWorkbook.Sheets("Sheet1").Cells(7, 9).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).Width
ThisWorkbook.Sheets("Sheet1").Cells(8, 9).Value = ThisWorkbook.Sheets("Sheet1").Cells(x, y).Height
End Sub
Скачать файл с примерами изменения и чтения размера ячеек
Запуск макроса активацией ячейки
Для запуска кода VBA при активации ячейки необходимо вставить в код листа нечто подобное:
3 важных момента, чтобы это работало:
1. Этот код должен быть вставлен в код листа (здесь контролируется диапазон D4)
2-3. Программа, ответственная за запуск кода при выборе ячейки, должна называться Worksheet_SelectionChange и должна принимать значение переменной Target, относящейся к триггеру SelectionChange. Другие доступные триггеры можно посмотреть в правом верхнем углу (2).
Скачать файл с базовым примером (как на картинке)
Скачать файл с расширенным примером (код ниже)
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' имеем в виду, что триггер SelectionChange будет запускать эту Sub после каждого клика мышью (после каждого клика будет проверяться:
'1. количество выделенных ячеек и
'2. не пересекается ли выбранный диапазон с заданным в этой программе диапазоном.
' поэтому в эту программу не стоит без необходимости писать никаких других тяжелых операций
If Selection.Count = 1 Then 'запускаем программу только если выбрано не более 1 ячейки
'вариант модификации - брать адрес ячейки из другой ячейки:
'Dim CellName as String
'CellName = Activesheet.Cells(1,1).value 'брать текстовое имя контролируемой ячейки из A1 (должно быть в формате Буква столбца + номер строки)
'If Not Intersect(Range(CellName), Target) Is Nothing Then
'для работы этой модификации следующую строку надо закомментировать/удалить
If Not Intersect(Range("D4"), Target) Is Nothing Then
'если заданный (D4) и выбранный диапазон пересекаются
'(пересечение диапазонов НЕ равно Nothing)
'можно прописать диапазон из нескольких ячеек:
'If Not Intersect(Range("D4:E10"), Target) Is Nothing Then
'можно прописать несколько диапазонов:
'If Not Intersect(Range("D4:E10"), Target) Is Nothing or Not Intersect(Range("A4:A10"), Target) Is Nothing Then
Call program 'выполняем программу
End If
End If
End Sub
Sub program()
MsgBox ("Program Is running") 'здесь пишем код того, что произойдёт при выборе нужной ячейки
End Sub