Убрать выделение одной ячейки в excel

Перейти к содержанию

На чтение 2 мин Просмотров 926 Опубликовано 07.04.2022

В Excel есть огромное количество полезных функций для работы с разными объемами данных.

К примеру, вы выделили лишний элемент и нужно отменить его выделение.

Раньше нельзя было сделать это (в ранних версиях), а сейчас — можно.

Я думаю это потому, что люди писали много отзывов и разработчики отреагировали.

Содержание

  1. Отменяем выделение
  2. Отменяем выделение определенных столбиков
  3. Как выделить диапазон ячеек

Отменяем выделение

Допустим, у нас есть такая табличка:

Наша задача — выделить все кроме столбиков с кварталами (Q1 и Q2).

Как это сделать?

Нужно выделить все, а потом исключить эти столбики так:

  • Зажимаем CTRL и выделяем столбики, которые нужно исключить, отдельно.

Тоже самое и для тех элементов, которые вы случайно выделили. Просто зажмите CTRL и нажмите на лишнее.

Если лист защищен — вы не сможете выделить что-либо.

Отменяем выделение определенных столбиков

Бывают ситуации, когда вам нужно выделить весь лист, исключая какие-нибудь столбики.

Допустим, нам нужно выделить все кроме 5 и 9 столбика. Как это сделать?

Пошаговая инструкция:

  • Для начала выделим все (CTRL + A);

  • А теперь зажмите CTRL и нажмите на 5 и 9 столбики.

Как выделить диапазон ячеек

  • С помощью мышки и левой кнопки. Просто зажмите её на той ячейке, с которой хотите начать и ведите мышь до той, на которой хотите закончить;
  • А если нужно выделить какие-то конкретные ячейки или диапазоны, которые не находятся рядом, то, после выделения первой ячейки (или диапазона), зажмите CTRL и выделите второй. Так можно выделить сколько угодно ячеек (или диапазонов).

Я рад тому, что Excel дали нам возможность исключать какие-либо элементы из выделения. Это сохраняет нам кучу времени.

Надеюсь, эта статья оказалась полезной для вас!

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Еще…Меньше

Иногда при выборе нескольких ячеек или диапазонов в Excel случайно выбирается одна или несколько непреднамеренной ячейки. Вы можете отобирать любые ячейки в выбранном диапазоне с помощью инструмента «Отобирать». Нажимая клавишу CTRL, можно щелкнуть или перетащить, чтобы отобирать все ячейки или диапазоны в пределах выделения. Если вам нужно отобирать какие-либо из этих ячеек, продолжайте удерживать на удержании клавишу CTRL и повторное выбор этих ячеек (для Mac используйте клавишу CMD).

Анимация выделения и деселации ячеек

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

этот макрос

Код
Sub Exclusion()
  Dim Base As Range, Out As Range, Adr$, SU As Boolean, DA As Boolean, EE As Boolean, CM As Long
  With Application
    Set Base = Selection: On Error Resume Next
    Set Out = Application.InputBox("Укажите ячейки, которые следует исключить", "Видите выбранный диапазон?", Type:=8)
    If Err Then Exit Sub
    SU = .ScreenUpdating: .ScreenUpdating = False: CM = .Calculation:  .Calculation = xlCalculationManual
    DA = .DisplayAlerts: .DisplayAlerts = False:   EE = .EnableEvents: .EnableEvents = False
    Worksheets.Add: Range(Out.Address) = 1:  Cells(Rows.Count, .Columns.Count) = 1
    Adr = Range(Base.Address).SpecialCells(xlCellTypeBlanks).Address
    ActiveSheet.Delete: If Not Err Then Range(Adr).Select
    .ScreenUpdating = SU: .DisplayAlerts = DA: .EnableEvents = EE:  .Calculation = CM
  End With
End Sub

положите в личную книгу макросов, на панель быстрого доступа выведите кнопку для его запуска (у меня она называется UnSelect)
допустим Вы выбрали диапазон с контролом, и случайно отметили не ту ячейку… в обычной ситуации нужно было повторить процесс сначала и повысить точность))
при наличии на панели быстрого доступа кнопки для запуска приведенного выше макроса, вызываете макрос, отмечаете ошибочно отмеченную ячейку (или с контролом несколько ячеек), жмете Ок. макрос снимет отметку с тех ячеек, которые нужно было разотметить

Теперь, когда у вас появился выделенный фрагмент текста, как вы намерены с ним работать? Каким образом вернуться к нормальной работе? Как убрать с экрана этот черный фон? Сейчас узнаете!

Отменить выделение можно с помощью нескольких способов.

  • Нажмите клавишу . При этом вы снимаете выделение и возвращаете курсор в начало блока (или в начало документа, если был выделен весь документ). Данный метод применим в тех случаях, когда для выделения текста вы использовали мышь или клавишу .
  • Щелкните кнопкой мыши. Это действие снимает выделение и переводит курсор в ту область, на которой вы щелкнули кнопкой мыши. Подходит для случаев, когда операция выделения выполняется с помощью мыши или клавиши .
  • Нажмите клавишу , а затем клавишу . Так вы снимете выделение, выполненное в расширенном режиме выделения блоков текста (с использованием клавиши и подсвеченными буквами ВДЛ, помните?).
  • Не забывайте о команде ! Эта комбинация не только снимает выделение с текстового блока (как бы он ни выделялся — с помощью клавиш , или мышью), но и возвращает вас к тексту, который вы редактировали до того, как взялись за процедуру выделения.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .

Можно сгруппировать, копирование, изменение размера или форматирования элементов управления в форме листа.

Элементы управления формы и элементы управления ActiveX невозможно объединить с помощью средства рисования и работа с рисунками SmartArt объектов (таких как фигур и графических элементов SmartArt графики) в тот же Выбор группы.

Убедитесь, что отображается вкладка разработчик на ленте. Подробнее читайте вкладку «Разработчик». Убедитесь, что включен режим конструктора. Чтобы сделать это, щелкните Разработчик > Режим конструктора (в группе элементы управления ).

После завершения работы с элементами управления отключите параметр режим конструктора.

Щелкните рамку выделения элемента управления.

Границу элемента управления в элементе управления формы отображается как пунктиром и ряд маркеров изменения размера:

Границу элемента управления для элемента управления ActiveX появляется как ряд маркеров изменения размера.

С помощью области выделения упрощает выберите один или несколько объектов, а также чтобы показать, скрыть или изменить порядок объектов.

На вкладке Главная в группе Редактирование нажмите кнопку Найти и выделить.

Выполните одну из указанных ниже процедур.

Чтобы выделить объекты, которые скрыты, расположены за другими объектами или за текстом, выберите пункт Выбор объектов и растяните прямоугольник поверх объектов.

Чтобы открыть область задач, в котором можно выбрать Несвязное выделение Показать, скрыть или изменить порядок объектов, щелкните Область выделения и выберите нужные параметры.

Совет: Чтобы выделить элементы управления с помощью мыши, нажмите и удерживайте клавишу CTRL до элементы будут выделены.

Во-первых щелкните границу выделения группа.

Как ряд маркеров изменения размера отображается граница выделения группы:

Щелкните элемент управления, который вы хотите выбрать внутри группы.

Во-первых щелкните границу выделения группа.

Как ряд маркеров изменения размера отображается граница выделения группы:

Затем нажмите и удерживайте клавишу CTRL, пока не будут выделены элементы управления.

Щелкните границу выделения группа и выделенной группы выглядит как ряд маркеров изменения размера.

Выполните указанные ниже действия, чтобы выбрать элемент управления, который скрыт или в разделе другие элементы управления:

Выделите элемент управления, который находится в верхнем слое.

Нажмите клавишу TAB для перемещения вперед или SHIFT + TAB для перемещения между элементами управления в обратном порядке.

На вкладке Главная в группе Редактирование нажмите кнопку Найти и выделить, а затем выполните одно из следующих действий:

Нажмите кнопку Выбор объектов и затем с помощью указателя мыши прямоугольник вокруг объектов, которые вы хотите выбрать.

Щелкните Область выделения и затем выберите один или несколько объектов с помощью области.

Выполните одно из указанных ниже действий.

Чтобы отменить выделение одного или нескольких элементов управления, щелкните за пределами элемента управления, набор выделенных элементов управления или границы группы.

Чтобы отменить выделение одного элемента управления во время в набор выделенных элементов, удерживайте нажатой клавишу CTRL и щелкните элемент управления.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

В программе Excel вы можете работать не только с одной ячейкой, но и с целой группой (в Excel также принято говорить «диапазоны ячеек»). Для этого нужно сделать их все активными, то есть выделить.

Как уже говорили, чтобы выделить одну ячейку, на ней нужно щелкнуть. Чтобы выделить прямоугольный диапазон ячеек, то есть ячейки, которые находятся рядом, нужно щелкнуть на левой верхней ячейке выделяемой области (например, на рис. 1.5, а это ячейка А1). Потом, не отпуская кнопку мыши (указатель мышки при этом должен быть в виде белого крестика), протяните рамку до нижней правой ячейки, до которой вы хотите выделить (на рис. 1.5, а это ячейка С5). Отпустите кнопку мыши для закрепления рамки. Вы можете сделать активными также ячейки, которые находятся совсем не рядом, а в разных местах таблицы. Для этого нажмите клавишу Ctrl и щелкайте на нужных ячейках (рис. 1.5, б).

Рис. 1.5. Выделение прямоугольного диапазона ячеек (а) и ячеек в разных частях таблицы (б)

Если хотите снять выделение с одной из ячеек, то щелкните на ней еще раз, удерживая Ctrl. Для выделения строки или столбца нужно подвести указатель мыши к заголовку строки или столбца и, когда он примет вид маленькой черной стрелочки, щелкнуть.

Если хотите выделить несколько строк или столбцов, то тяните мышь, не отпуская ее кнопку, от первого заголовка строки или столбца до последнего. Сколько протянете, столько строк или столбцов и выделится. Для выделения строк и столбцов, которые находятся не рядом друг с другом, удерживайте нажатой клавишу Ctrl. Чтобы выделить все ячейки таблицы, щелкните на кнопке с треугольником, которая находится в левом верхнем углу таблицы, или нажмите сочетание клавиш Ctrl+A.

Отменить любое выделение можно, щелкнув кнопкой мышки на любой ячейке.

Вы уже знаете, что каждая ячейка имеет свой адрес. Диапазон ячеек тоже имеет свой адрес. Посмотрите, на рис. 1.5, а выделен диапазон ячеек А1:С5 (через двоеточие указывается левый верхний и правый нижний углы диапазона). Если выделенный диапазон — строка, то через двоеточие будут указаны левая и правая ячейки, например А2:Е2 (рис. 1.6, а). Если выделенный диапазон — столбец, то будут указаны верхняя и нижняя ячейки, например B2:В6 (рис. 1.6, б). Вы спросите, зачем присваивать адрес диапазону? Отвечаю: значения из диапазонов ячеек могут принимать участие в расчетах. В этом случае адрес диапазона будет использоваться в формуле.

Рис. 1.6. Выделенные диапазоны: ячейки строки (а) и ячейки столбца (б)

На этом наш обзор внешнего вида программы завершен. Базовые навыки вы уже приобрели, основные термины освоили.

Теперь я хочу обратить ваше внимание на меню Файл (рис. 1.7). Книга Excel — это обычный файл. Соответственно с этим файлом можно делать все то же, что и с любым файлом, а именно:

Рис. 1.7. Меню Файл

Все эти возможности как раз и спрятаны в меню Файл. Подробнее мы рассмотрим его в разделе «Меню Файл».

В последних версиях пакета Microsoft Office (2007 и 2010) файлы, созданные в программе Excel, имеют расширение XLSX. Значок такого файла в папке с файлами будет выглядеть, как показано на рис. 1.8. В предыдущих версиях Excel файл программы имел расширение XLS.

Рис. 1.8. Значок файла Excel в папке компьютера

Так вот. Старые файлы с расширением XLS открываются в Excel 2010. Не все функции в них работают, но открыть и прочитать их вы сможете всегда. А вот новые файлы (это которые с расширением XLSX) в старых версиях Excel не открываются. Если вы собираетесь отправлять кому-нибудь свой файл, то стоит поинтересоваться, откроется ли там файл XLSX. Если нет, то вы можете пересохранить файл так, чтобы он открывался в любой версии программы. Вы также можете воспользоваться специальной программой для просмотра файлов XLS, скачать ее можно с этой страницы.

Для этого в меню Файл, которое открыто на рис. 1.7, выберите строку Сохранить как, а в появившемся окне Сохранение документа в строке Тип файла укажите Книга Excel 97–2003 (рис. 1.9).

Рис. 1.9. Окно сохранения файла

После этого у вас в папке будет два файла: один XLSX, а второй XLS (рис. 1.10).

Рис. 1.10. Файл слева совместим со старыми версиями Excel

Значки у файлов разные, но трудно различимые. Поэтому лично я пользуюсь всплывающей подсказкой, чтобы убедиться в том, что открываю нужный мне файл.

What do you do if you select a cell or area by mistake? In this post, we show you how to use the new Deselect feature in Microsoft Excel.

excel-dashboard-tips

Microsoft Excel is packed with productivity shortcuts. For instance, there are many ways to select cells, a range of cells, and even the entire spreadsheet.

But what do you do if you select a cell or area by mistake? There’s no built-in way to remove that from the selection without deselecting the entire selection and starting over.

That is, until now. In this post, we’ll show you how to start using the new Deselect feature in Microsoft Excel which solves that exact problem.

How to Deselect Cells in Microsoft Excel

Selecting too many cells or highlighting the wrong range of cells is an easy mistake to make in Excel, and it’s both frustrating and time-consuming. That’s why Microsoft Excel introduced the Deselect tool. As of this writing, this feature is only available to Office 365 subscribers.

Here’s how you can deselect cells within a range of cells that are highlighted in three quick steps.

  1. Hold the Ctrl key.
  2. Click to deselect any cell or click and drag to deselect a range of cells within a selection.
  3. To reselect any of those cells, hold the Ctrl key again and reselect those cells.

Note that if a worksheet is protected, then you won’t be able to select cells or their contents. Also, the way to select cells hasn’t changed.

To select a range of contiguous cells: Click the first cell in the range, and then drag to the last cell. Alternatively, hold down Shift and use the arrow keys to extend the selection.

To select a bunch of non-contiguous cells: Select the first cell or range of cells, and then hold down Ctrl while you select the other cells or ranges.

Now, thanks to the Deselect feature you don’t have to cancel the entire selection if you don’t select the right cells. Update to the latest version of Office 365 and try this feature today.

Содержание:

  1. Как отменить выбор ячеек в Excel
  2. Отменить выбор определенных столбцов в Excel
  3. Выбор ячеек не изменился

Excel — это действительно продуманный инструмент для работы с электронными таблицами, в котором есть множество простых приемов, которые могут повысить вашу продуктивность и сэкономить время.

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

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

Представьте, что вам нужно выделить диапазон ячеек, и вы случайно выберете дополнительную строку или столбец. Раньше нельзя было отменить выбор определенных ячеек или диапазонов, но Excel изменил это.

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

Примечание. На данный момент эта функция доступна только в Excel для Office 365, Excel для Office 365 для Mac, Excel2021-2022 и Excel2021-2022 для Mac.

Как отменить выбор ячеек в Excel

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

Один из способов сделать это — удерживать клавишу Ctrl, а затем с помощью мыши выбирать диапазоны, чтобы вы выбирали только столбцы месяца, а не столбцы квартала.

Но, как это часто бывает, вы можете случайно выбрать четверть столбца (или несколько лишних строк).

Вот как отменить выбор этих дополнительных выделенных ячеек / столбцов.

  1. Удерживайте клавишу Ctrl
  2. Щелкните ячейку, выделение которой нужно отменить. Если вы хотите отменить выбор диапазона ячеек (например, четверть столбца в нашем примере), щелкните и перетащите, чтобы охватить весь столбец / диапазон)

В случае, если вы случайно отмените выбор любых ячеек / диапазонов, которые вы хотели оставить выделенными, просто повторите тот же процесс — удерживайте клавишу управления и выберите (или перетащите для нескольких ячеек).

Обратите внимание, что эта функция отмены выбора ячеек / диапазонов может не работать, если ваш рабочий лист защищен.

Отменить выбор определенных столбцов в Excel

В приведенных выше примерах я выбрал несколько ячеек на листах.

Если вы хотите выбрать весь рабочий лист, а затем отменить выбор некоторых столбцов, вы также можете это сделать.

Предположим, вы хотите выделить весь лист и отменить выбор только пятого и девятого столбцов.

Ниже приведены шаги для этого:

  1. Выделите весь лист, щелкнув треугольник в верхней левой части листа (или используйте сочетание клавиш Ctrl + A).
  2. Удерживая нажатой клавишу Ctrl, выберите столбцы, которые вы хотите удалить из выделения (# 5 и # 9 в нашем примере).

Выбор ячеек не изменился

Способ выделения ячеек остается прежним:

  • Если вы хотите выбрать диапазон ячеек, вы можете либо использовать мышь (щелкните левой кнопкой мыши по ячейке и перетащите, чтобы выбрать все покрытые ячейки), либо щелкните ячейку, удерживайте клавишу Shift и щелкните другую ячейку, и Excel выберет все клетки между ним.
  • Если вы хотите выделить несмежные ячейки, удерживайте нажатой клавишу Ctrl и затем сделайте выбор.

Лично я считаю, что это небольшое улучшение значительно экономит время. Часто мне нужно выделить весь диапазон, кроме нескольких ячеек. Теперь я могу просто выделить весь диапазон, а затем отменить выбор этих конкретных ячеек.

Надеюсь, вы нашли этот урок полезным.

Содержание

  1. Какие типы диапазонов имеются в Excel
  2. Адрес выделенного диапазона
  3. Копирование диапазона
  4. Обращение к конкретной ячейке
  5. Запрос значения ячейки
  6. Снять выделение со строк и столбцов
  7. Множественное выделение
  8. Чтение значения из ячейки
  9. Определение номеров первой и последней строки

Какие типы диапазонов имеются в Excel

Вы можете выделить диапазоны следующих типов:

  • одна отдельная ячейка;
  • несколько смежных между собой ячеек;
  • один или несколько столбцов;
  • одну или несколько строк;
  • рабочий лист целиком;
  • также можете выделить комбинацию типов (множественное выделение).

Когда вы обрабатываете выделенный диапазон, то должны быть уверены, что он нужного типа иначе не исключено, что макрос будет работать не так как хотелось.

Перед тем как обрабатывать выделенный диапазон ячеек необходимо убедиться, а на сомом ли деле это диапазон ячеек, а не график или кнопка. Следующим образом можно предупредить пользователя, что выделен совсем не диапазон.

 ' Проверяем выделен ли диапазон If TypeName(Selection) <> "Range" Then MsgBox "Необходимо выделить диапазон ячеек", vbOKOnly Or vbInformation, "Определение типа диапазона" Exit Sub End If

Адрес выделенного диапазона

Для определения адреса выделенного диапазона ячеек в VBA Excel используется свойство Address объекта Selection.

Объект Selection – это совокупность всех выделенных ячеек на листе Excel. Это может быть одна ячейка, смежный или несмежный диапазон ячеек, представляющий совокупность смежных диапазонов. Если выделение состоит из несмежного диапазона, адреса смежных диапазонов, из которых он состоит, будут перечислены через запятую.

Стоит отметить: несмотря на то, что в выделенном диапазоне может содержаться много ячеек, активной может быть только одна. Она представлена объектом ActiveCell. Для определения ее адреса в коде VBA Excel также используется свойство Address.

Sub Primer1()

MsgBox “Адрес выделенного диапазона: “ & Selection.Address & _

vbNewLine & “Адрес активной ячейки: “ & ActiveCell.Address & _

vbNewLine & “Номер строки активной ячейки: “ & ActiveCell.Row & _

vbNewLine & “Номер столбца активной ячейки: “ & ActiveCell.Column

End Sub

Скопируйте и запустите код на выполнение. В результате получите что-то вроде этого, зависящее от того, какие диапазоны вы выберите:


Определение адресов выделенного диапазона и активной ячейки

Копирование диапазона

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

Sub Макрос()
Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
End Sub

Обратите внимание, что данная программа выделяет ячейки. Однако в VBA для работы с объектом не обязательно его выделять. Данную процедуру можно заменить значительно более простой — применить метод Сору, который использует аргумент, представляющий адрес места вставки копируемого диапазона.

Sub CopyRange()
Range("А1").Copy Range("В1")
End Sub

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

Sub CopyRange2()
Workbooks("File1.xlsx").Sheets("Лист1").Range("A1").Copy _
Workbooks("File2.xlsx").Sheets("Лист2").Range("A1")
End Sub

Еще одним подходом к решению этой задачи является использование для представления диапазонов объектных переменных:

Sub CopyRange3()
Dim Rngl As Range, Rng2 As Range
Set Rngl = Workbooks("File1.xlsx").Sheets("Лист1").Range("A1")
Set Rng2 = Workbooks("File2.xlsx").Sheets("Лист2").Range("A1")
Rngl.Copy Rng2 End Sub

Можно копировать большой диапазон. Адрес места вставки определяется единственной ячейкой (представляющей верхний левый угол вставляемого диапазона):

Sub CopyRange4 ()
Range("А1:С800").Copy Range("D1")
End Sub

Для перемещения диапазона ячеек вместо метода Сору используется метод Cut.

Если размер копируемого диапазона не известен используется свойство CurrentRegion, возвращающее объект Range, который соответствует прямоугольнику ячеек вокруг заданной ячейки:

Sub CopyCurrentRegion2()
Range("A1").CurrentRegion.Copy Sheets("Лист2").Range("A1")
End Sub

Метод End имеет один аргумент, определяющий направление, в котором увеличивается выделение ячеек. Следующий оператор выделяет диапазон от активной ячейки до последней непустой ячейки внизу:

Range (ActiveCell, ActiveCell.End(xlDown)).Select

Три остальные константы имитируют комбинации клавиш при выделении в других направлениях: xlUp (вверх), xlToLeft (влево) и xlToRight (вправо).

В прилагаемом Excel-файле определено несколько распространенных типов выделения ячеек (см. рис. 1). Код любопытен тем, что является также примером создания контекстного меню.

Обращение к конкретной ячейке

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

Полный путь к ячейке A1 в Книге1 на Листе1 можно записать двумя вариантами:

  • С помощью Range
  • С помощью Cells

Пример 1: Обратиться к ячейке A3 находящейся в Книге1 на Листе1

 Workbooks("Книга1.xls").Sheets("Лист1").Range("A3") ' Обратиться к ячейке A3 Workbooks("Книга1.xls").Sheets("Лист1").Cells(3, 1) ' Обратиться к ячейке в 3-й строке и 1-й колонке (A3) 

Однако, как правило, полный путь редко используется, т.к. макрос работает с Книгой, в которой он записан и часто на активном листе. Поэтому путь к ячейке можно сократить и написать просто:

Пример 2: Обратиться к ячейке A1 в текущей книге на активном листе

 Range("A1") Cells(1, 1) 

Если всё же путь к книге или листу необходим, но не хочется его писать при каждом обращении к ячейкам, можно использовать конструкцию With End With. При этом, обращаясь к ячейкам, необходимо использовать в начале “.” (точку).

Пример 3: Обратиться к ячейке A1 и B1 в Книге1 на Листе2.

 With Workbooks("Книга1").Sheets("Лист2") ' Вывести значение ячейки A1, которая находится на Листе2 MsgBox .Range("A1") ' Вывести значение ячейки B1, которая находится на Листе2 MsgBox .Range("B1") End With 

Так же, можно обратиться и к активной (выбранной в данный момент времени) ячейке.

Пример 4: Обратиться к активной ячейке на Листе3 текущей книги.

 Application.ActiveCell ' полная запись ActiveCell ' краткая запись 

Запрос значения ячейки

Следующая процедура запрашивает значение у пользователя и вставляет его в ячейку А1:

Sub GetValuel()
Range("A1").Value = InputBox("Введите значение")
End Sub

Однако при выполнении этой процедуры возникает проблема. Если пользователь щелкнет на кнопке Отмена в окне ввода данных, то процедура удалит данные, которые находились в текущей ячейке. Модифицированная версия процедуры адекватно реагирует на щелчок на кнопке Отмена и не выполняет при этом никаких действий:

Sub GetValue2()
Dim UserEntry As Variant
UserEntry = InputBox("Введите значение")
If UserEntry <> "" Then Range("A1").Value = UserEntry
End Sub

Во многих случаях следует проверить правильность данных, введенных пользователем. Например, необходимо обеспечить введение только чисел в диапазоне от 1 до 12 (рис. 2). Это можно сделать при помощи процедуры GetValue3(), код которой приведен в Модуле1 приложенного Excel-файла. Некорректные данные игнорируются, и окно запроса значения отображается снова. Этот цикл будет повторяться, пока пользователь не введет правильное значение или не щелкнет на кнопке Отмена.

Снять выделение со строк и столбцов

Аналогичным образом работает снятие выделения со строк и столбцов.

Если вы хотите выбрать весь лист, а затем снять выделение с некоторых конкретных столбцов, вы можете сделать это следующим образом:

  1. Выделите весь лист, нажав на треугольник в верхней левой части листа (или используйте сочетание клавиш Ctrl+A)
  2. Удерживая клавишу Ctrl, выберите нужные столбцы, нажимая на соответствую букву столбца.

Множественное выделение

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

Сначала определим, на самом ли деле у нас несколько областей. Для этого посчитаем их с помощью следующего кода:

  ' Количество выделенных областей AreasCount = Selection.Areas.Count

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

 ' Определим и запомним тип выделения первой области FirstRangeType = RangeType(Selection.Areas(1)) For Each Area In Selection.Areas ' Определяем тип каждой области и ведем подсчет (без перекрытия областей) CurreRangeType = RangeType(Area) Select Case CurreRangeType Case "Строка" RowsCount = RowsCount + Area.Rows.Count Case "Столбец" ColsCount = ColsCount + Area.Columns.Count Case "Лист" ColsCount = ColsCount + Area.Columns.Count RowsCount = RowsCount + Area.Rows.Count Case "Область" ColsCount = ColsCount + Area.Columns.Count RowsCount = RowsCount + Area.Rows.Count RangeAreasCount = RangeAreasCount + 1 End Select ' Количество ячеек CellsCount = CellsCount + Area.CountLarge ' Определяем является ли выделение смешанным (разный тип выделения) If CurreRangeType <> FirstRangeType Then DifferentType = True Next ' Информационное сообщение MsgBox "Множественное выделение: " & IIf(AreasCount > 0, "Да", "Нет") & vbCrLf & _ "Тип выделения: " & IIf(DifferentType, "Смешанный", "Однотипный") & vbCrLf & _ "Количество диапазонов: " & AreasCount & vbCrLf & _ "Количество столбцов: " & Format(ColsCount, "#,###") & vbCrLf & _ "Количество строк: " & Format(RowsCount, "#,###") & vbCrLf & _ "Областей ячеек: " & Format(RangeAreasCount, "#,###") & vbCrLf & _ "Количество ячеек: " & Format(CellsCount, "#,###") & vbCrLf & _ "", vbOKOnly Or vbInformation, "Определение типа выделенного диапазона"

Как вы видите организовать перебрать все выделенные области можно циклом For Each и для каждого диапазона вызывать функцию RangeType.

 Ввод значения в следующую пустую ячейку

Если требуется ввести значение в следующую пустую ячейку столбца или строки, используйте код (рис. 3):

Sub GetData()
Dim NextRow As Long
Dim Entry1 As String, Entry2 As String
Do
' Определение следующей пустой строки
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
' Запрос данных
Entry1 = InputBox("Введите имя")
If Entry1 = "" Then Exit Sub
Entry2 = InputBox("Введите сумму")
If Entry2 = "" Then Exit Sub
' Запись данных
Cells(NextRow, 1) = Entry1
Cells(NextRow, 2) = Entry2
Loop
End Sub

Это бесконечный цикл. Для выхода из него (щелкните на кнопке Cancel) использовались операторы Exit Sub. Обратите внимание строку, в который определяется значение переменной NextRow. Если вам трудно ее понять, проанализируйте содержимое ячейки: перейдите в последнюю ячейку столбца А и нажмите <End> и <↑>. После этого будет выделена последняя непустая ячейка в столбце А. Свойство Row возвращает номер этой строки; чтобы получить расположенную под ней строку (следующую пустую строку), к этому номеру прибавляется 1.

Чтение значения из ячейки

Есть 3 способа получения значения ячейки, каждый из которых имеет свои особенности:

  • Value2 – базовое значение ячейки, т.е. как оно хранится в самом Excel-е. В связи с чем, например, дата будет прочтена как число от 1 до 2958466, а время будет прочитано как дробное число. Value2 – самый быстрый способ чтения значения, т.к. не происходит никаких преобразований.
  • Value – значение ячейки, приведенное к типу ячейки. Если ячейка хранит дату, будет приведено к типу Date. Если ячейка отформатирована как валюта, будет преобразована к типу Currency (в связи с чем, знаки с 5-го и далее будут усечены).
  • Text – визуальное отображение значения ячейки. Например, если ячейка, содержит дату в виде “число месяц прописью год”, то Text (в отличие от Value и Value2) именно в таком виде и вернет значение. Использовать Text нужно осторожно, т.к., если, например, значение не входит в ячейку и отображается в виде “#####” то Text вернет вам не само значение, а эти самые “решетки”.

По-умолчанию, если при обращении к ячейке не указывать способ чтения значения, то используется способ Value.

Пример 5: В ячейке A1 активного листа находится дата 01.03.2018. Для ячейки выбран формат “14 марта 2001 г.”. Необходимо прочитать значение ячейки всеми перечисленными выше способами и отобразить в диалоговом окне.

 MsgBox Cells(1, 1) ' выведет 01.03.2018 MsgBox Cells(1, 1).Value ' выведет 01.03.2018 MsgBox Cells(1, 1).Value2 ' выведет 43160 MsgBox Cells(1, 1).Text ' выведет 01 марта 2018 г. Dim d As Date d = Cells(1, 1).Value2 ' числовое представление даты преобразуется в тип Date MsgBox d ' выведет 01.03.2018 

Пример 6: В ячейке С1 активного листа находится значение 123,456789. Для ячейки выбран формат “Денежный” с 3 десятичными знаками. Необходимо прочитать значение ячейки всеми перечисленными выше способами и отобразить в диалоговом окне.

 MsgBox Range("C1") ' выведет 123,4568 MsgBox Range("C1").Value ' выведет 123,4568 MsgBox Range("C1").Value2 ' выведет 123,456789 MsgBox Range("C1").Text ' выведет 123,457р. Dim c As Currency c = Range("C1").Value2 ' значение преобразуется в тип Currency MsgBox c ' выведет 123,4568 Dim d As Double d = Range("C1").Value2 ' значение преобразуется в тип Double MsgBox d ' выведет 123,456789 

При присвоении значения переменной или элементу массива, необходимо учитывать тип переменной. Например, если оператором Dim задан тип Integer, а в ячейке находится текст, при выполнении произойдет ошибка “Type mismatch”. Как определить тип значения в ячейке, рассказано в следующей статье.

Пример 7: В ячейке B1 активного листа находится текст. Прочитать значение ячейки в переменную.

 Dim s As String Dim i As Integer s = Range("B1").Value2 ' успех i = Range("B1").Value2 ' ошибка 

Таким образом, разница между Text, Value и Value2 в способе получения значения. Очевидно, что Value2 наиболее предпочтителен, но при преобразовании даты в текст (например, чтобы показать значение пользователю), нужно использовать функцию Format.

Определение номеров первой и последней строки

Чтобы вычислить номера первой и последней строки выделенного диапазона, будем исходить из того, что первая ячейка смежного диапазона находится на первой строке, а последняя – на последней строке выделенного диапазона.

Sub Primer3()

Dim i1 As Long, i2 As Long

i1 = Selection.Cells(1).Row

i2 = Selection.Cells(Selection.Cells.Count).Row

MsgBox “Первая строка: “ & i1 & _

vbNewLine & “Последняя строка: “ & i2

End Sub

Результат будет таким, зависит от выделенного диапазона:

  Номера первой и последней строки выделенного смежного диапазона

Таким же образом можно вычислить номера первого и последнего столбцов выделенного диапазона, которые можно использовать для обработки информации по столбцам.

Обратите внимание, что для несмежных диапазонов этот пример не работает. Оказалось, что базу данных клиентов заполнять в таблице Excel намного удобнее, чем на портале сервиса, а для загрузки в сервис достаточно сформировать несложный файл. Заполнил новые строки, выделил их по любому столбцу, нажал кнопку и файл готов.

Источники

  • https://micro-solution.ru/excel/vba/type-range
  • https://vremya-ne-zhdet.ru/vba-excel/vydelennyy-diapazon-yacheyek-selection-address-range/
  • https://baguzin.ru/wp/rabota-s-diapazonami-v-vba/
  • https://codernotes.ru/articles/vba/chtenie-i-zapis-znacheniya-yachejki-v-vba.html
  • https://micro-solution.ru/excel/ranges/deselect-cells

Понравилась статья? Поделить с друзьями:
  • Убрать всю разметку в excel
  • Убрать всплывающее меню excel
  • Убрать все формулы оставить только значения excel
  • Убрать все точки в числах в excel
  • Убрать все рисунки excel