Range excel что это такое

О чём пойдёт речь?

Знакомство с объектной моделью Excel следует начинать с такого замечательного объекта, как Range. Поскольку любая ячейка — это Range, то без знания, как с этим объектом эффективно взаимодействовать, вам будет затруднительно программировать для Excel. Это очень ладно-скроенный объект. При некоторой сноровке вы найдёте его весьма удобным в эксплуатации.

Что такое объекты?

Мы собираемся изучать объект Range, поэтому пару слов надо сказать, что такое, собственно, «объект«. Всё, что вы наблюдаете в Excel, всё с чем вы работаете — это набор объектов. Например, лист рабочей книги Excel — не что иное, как объект типа WorkSheet. Однотипные объекты объединяют в коллекции себе подобных. Например, листы объединены в коллекцию Sheets. Чтобы не путать друг с другом объекты одного и того же типа, они имеют отличающиеся имена, а также номер индекса в коллекции. Объекты имеют свойства, методы и события.

Свойства — это информация об объекте. Часто эти свойства можно менять, что автоматически влечет изменения внешнего вида объекта или его поведения. Например свойство Visible объекта Worksheet отвечает за видимость листа на экране. Если ему присвоить значение xlSheetHidden (это константа, которая по факту равно нулю), то лист будет скрыт.

Методы — это то, что объект может делать. Например, метод Delete объекта Worksheet удаляет себя из книги. Метод Select делает лист активным.

События — это механизм, при помощи которого вы можете исполнять свой код VBA сразу по факту возникновения того или иного события с вашим объектом. Например, есть возможность выполнять ваш код, как только пользователь сделал текущим определенный лист рабочей книги, либо как только пользователь что-то изменил на этом листе.

Range это диапазон ячеек. Минимум — одна ячейка, максимум — весь лист, теоретически насчитывающий более 17 миллиардов ячеек (строки 2^20 * столбцы 2^14 = 2^34).
В Excel объявлены глобально и всегда готовы к использованию несколько коллекций, имеющий членами объекты типа Range, либо свойства это же типа.
Коллекции глобального объекта Application: Cells, Columns, Rows, а также свойства Range, Selection, ActiveCell, ThisCell.
ActiveCell — активная ячейка текущего листа, ThisCell — если вы написали пользовательскую функцию рабочего листа, то через это свойство вы можете определить какая конкретно ячейка в данный момент пересчитывает вашу функцию. Об остальных перечисленных объектов речь пойдёт ниже.

Работа с отдельными ячейками

Синтаксическая форма Комментарии по использованию
RangeD5«) или [D5] Ячейка D5 текущего листа. Полная и краткая формы. Тут применим только синтаксис типа A1, но не R1C1. То есть такая конструкция RangeR1C2«) — вызовет ошибку, даже если в книге Excel включен режим формул R1C1.

Разумеется после этой формы вы можете обратиться к свойствам соответствующей ячейки. Например, RangeD5«).Interior.Color = RGB(0, 255, 0).
Cells(5, 4) или Cells(5, «D») Ячейка D5 текущего листа через свойство Cells. 5 — строка (row), 4 — столбец (column). Допустимость второй формы мало кому известна.
Cells(65540) Ячейку D5 можно адресовать и через указание только одного параметра свойсва Cells. При этом нумерация идёт слева направо, потом сверху вниз. То есть сначала нумеруется вся строка (2^14=16384 колонок) и только потом идёт переход на следующую строку. То есть Cells(16385) вернёт вам ячейку A2, а D5 будет Cells(65540). Пока данный способ выглядит не очень удобным.

Работа с диапазоном ячеек

Синтаксическая форма Комментарии по использованию
Range(«A1:B4«) или [A1:B4] Диапазон ячеек A1:B4 текущего листа. Обратите внимание, что указываются координаты верхнего левого и правого нижнего углов диапазона. Причём первый указываемый угол вполне может быть правым нижним, это не имеет значения.
Range(Cells(1, 1), Cells(4, 2)) Диапазон ячеек A1:B4 текущего листа. Удобно, когда вы знаете именно цифровые координаты углов диапазона.

Работа со строками

Синтаксическая форма Комментарии по использованию
Range3:5«) или [3:5] Строки 3, 4 и 5 текущего листа целиком.
RangeA3:XFD3«) или [A3:XFD3] Строка 3, но с указанием колонок. Просто, чтобы вы понимали, что это тождественные формы. XFD — последняя колонка листа.
Rows3:3«) Строка 3 через свойство Rows. Параметр в виде диапазона строк. Двоеточие — это символ диапазона.
Rows(3) Тут параметр — индекс строки в массиве строк. Так можно сослаться только не конкретную строку. Обратите внимание, что в предыдущем примере параметр текстовая строка «3:3» и она взята в кавычки, а тут — чистое число.

Работа со столбцами

Синтаксическая форма Комментарии по использованию
RangeB:B«) или [B:B] Колонка B текущего листа.
RangeB1:B1048576«) или [B1:B1048576] То же самое, но с указанием номеров строк, чтобы вы понимали, что это тождественные формы. 2^20=1048576 — максимальный номер строки на листе.
ColumnsB:B«) То же самое через свойство Columns. Параметр — текстовая строка.
Columns(2) То же самое. Параметр — числовой индекс столбца. «A» -> 1, «B» -> 2, и т.д.

Весь лист

Синтаксическая форма Комментарии по использованию
RangeA1:XFD1048576«) или [A1:XFD1048576] Диапазон размером во всё адресное пространство листа Excel. Воспринимайте эту таблицу лишь как теорию — так работать с листами вам не придётся — слишком большое количество ячеек. Даже современные компьютеры не смогут помочь Excel быстро работать с такими массивами информации. Тут проблема больше даже в самом приложении.
Range1:1048576«) или [1:1048576] То же самое, но через строки.
RangeA:XFD«) или [A:XFD] Аналогично — через адреса столбцов.
Cells Свойство Cells включает в себя ВСЕ ячейки.
Rows Все строки листа.
Columns Все столбцы листа.

Следует иметь в виду, что свойства Range, Cells, Columns и Rows имеют как объекты типа Worksheet, так и объекты Range. Соответственно в первом случае эти коллекции будут относиться ко всему листу и отсчитываться будут от A1, а вот в случае конкретного объекта Range эти коллекции будут относиться только к ячейкам этого диапазона и отсчитываться будут от левого верхнего угла диапазона. Например Cells(2,2) указывает на ячейку B2, а Range(«C3:D5»).Cells(2,2) укажет на D4.

Также много путаницы в умы вносит тот факт, что объект Range имеет одноименное свойство range. К примеру, Range(«A100:D500»).Range(«A2») — тут выражение до точки ( Range(«A100:D500») ) является объектом Range, выражение после точки ( Range(«A2») ) — свойство range упомянутого объекта, но возвращает это свойство тоже объект типа Range. Вот такие пироги. Из этого следует, что такая цепочка может иметь и более двух членов. Практического смысла в этом будет не много, но синтаксически это будут совершенно корректно, например, так: Range(«CV100:GR200»).Range(«J10:T20»).Range(«A1:B2») укажет на диапазон DE109:DF110.

Ещё один сюрприз таится в том, что объекты Range имеют свойство по-умолчанию Item( RowIndex [, ColumnIndex] ). По правилам VBA при ссылке на default свойства имя свойства (Item) можно опускать. Кстати говоря, то что вы привыкли видеть в скобках после Cells, есть не что иное, как это дефолтовое свойство Item, а не родные параметры Cells, который их не имеет вовсе. Ну ладно к Cells все привыкли и это никакого отторжения не вызывает, но если вы увидите нечто подобное — Range(«C3:D5»)(2,2), то, скорее всего, будете несколько озадачены, а тем временем — это буквально тоже самое, что и у Cells — всё то же дефолтовое свойство Item. Последняя конструкция ссылается на D4. А вот для Columns и Rows свойство Item может быть только одночленным, например Columns(1) — и к этой форме мы тоже вполне привыкли. Однако конструкции вида Columns(2)(3)(4) могут сильно удивить (столбец 7 будет выделен).

Примеры кода

Скачать

Типовые задачи

  1. Перебор ячеек в диапазоне (вариант 1)

    В данном примере организован цикл For…Next и доступ к ячейкам осуществляется по их индексу. Вместо parRange(i) мы могли бы написать parRange.Item(i) (выше это объяснялось). Обратите внимание, что мы в этом примере успешно применяем, как вариант с parRange(i,c), так и parRange(i). То есть, если мы применяем одночленную форму свойства Item, то диапазон перебирается по строкам (A1, B1, C1, A2, …), а если двухчленную, то столбец у нас зафиксирован и каждая итерация цикла — на новой строке. Это очень интересный эффект, его можно применять для вытягивания таблиц по вертикали. Но — продолжим!

    Количество ячеек в диапазоне получено при помощи свойства .Count. Как .Item, так и .Count — это всё атрибуты коллекций, которые широко применяются в объектой модели MS Office и, в частности, Excel.

    Sub Handle_Cells_1(parRange As Range)
      For i = 1 To parRange.Count
        parRange(i, 5) = parRange(i).Address & " = " & parRange(i)
      Next
    End Sub
     
  2. Перебор ячеек в диапазоне (вариант 2)

    В этом примере мы использовали цикл For each…Next, что выглядит несколько лаконичней. Однако, в некоторых случаях вам может потребоваться переменная i из предыдущего примера, например, для вывода результатов в определенные строки листа, поэтому выбирайте удробную вам форму оператора For. Тут в цикле мы «вытягивали» все ячейки диапазона в текстовую строку, чтобы потом отобразить её через функцию MsgBox.

    Sub Handle_Cells_2(parRange As Range)
      For Each c In parRange
        strLine = strLine & c.Address & "=" & c & "; "
      Next
      MsgBox strLine
    End Sub
     
  3. Перебор ячеек в диапазоне (вариант 3)

    Если необходимо перебирать ячейки в порядке A1, A2, A3, B1, …, а не A1, B1, C1, A2, …, то вы можете это организовать при помощи 2-х циклов For. Обратите внимание, как мы узнали количество столбцов (parRange.Columns.Count) и строк (parRange.Rows.Count) в диапазоне, а также на использование свойства Cells. Тут Cells относится к листу и никак не связано с диапазоном parRange.

    Sub Handle_Cells_3(parRange As Range)
      colNum = parRange.Columns.Count
      For i = 1 To parRange.Rows.Count
        For j = 1 To colNum
          Cells(i + (j - 1) * colNum, colNum + 2) = parRange(i, j)
        Next j
      Next i
    End Sub  
     
  4. Перебор строк диапазона

    В цикле For each…Next перебираем коллекцию Rows объекта parRange. Для каждой строки формируем цвет на основе первых трёх ячеек каждой строки. Поскульку у нас в ячейках формула, присваивающая ячейке случайное число от 1 до 255, то цвета получаются всегда разные. Оператор With позволяет нам сократить код и, к примеру, вместо Line.Cells(2) написать просто .Cells(2).

    Sub Handle_Rows_1(parRange As Range)
      For Each Line In parRange.Rows
        With Line
          .Interior.Color = RGB(.Cells(1), .Cells(2), .Cells(3))
        End With
      Next
    End Sub  
     
  5. Перебор столбцов

    Перебираем коллекцию Columns. Тоже используем оператор With. В последней ячейке каждого столбца у нас хранится размер шрифта для всей колонки, который мы и применяем к свойству Line.Font.Size.

    Sub Handle_Columns_1(parRange As Range)
      For Each Line In parRange.Columns
        With Line
          .Font.Size = .Cells(.Cells.Count)
        End With
      Next
    End Sub 
     
  6. Перебор областей диапазона

    Как вы знаете, в Excel можно выделить несвязанные диапазоны и проделать с ними какие-то операции. Поддерживает это и объект Range. Получить диапазон, состоящий из нескольких областей (area) очень легко — достаточно перечислить через запятую адреса соответствующих диапазонов: RangeA1:B3, B5:D8, Z1:AA12«).
    Вот такой составной диапазон и разбирается процедурой, показанной ниже. Организован цикл по коллекции Areas, настроен оператор with на текущий элемент коллекции, и ниже и правее относительно ячейки J1 мы собираем некоторые сведения о свойствах областей составного диапазона (которые каждый по себе, конечно же, тоже являются объектами типа Range). Для задания смещения от ячейки J1 нами впервые использовано очень полезное свойство Offset. Каждый диапазон получает случайный цвет, плюс мы заносим в таблицу порядковый номер диапазона (i), его адрес (.Address), количество ячеек (.Count) и цвет (.Interior.Color) после того, как он вычислен.

    Sub Handle_Areas_1(parRange As Range)
      For i = 1 To parRange.Areas.Count
        With parRange.Areas(i)
          Cells(1, 10).Offset(i, 0) = i
          Cells(1, 10).Offset(i, 1) = .Address
          Cells(1, 10).Offset(i, 2) = .Count
          .Interior.Color = RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
          Cells(1, 10).Offset(i, 3) = .Interior.Color
        End With
      Next
    End Sub
     

Продолжение следует…

Читайте также:

  • Поиск границ текущей области

  • Массивы в VBA

  • Структуры данных и их эффективность

  • Автоматическое скрытие/показ столбцов и строк

На чтение 18 мин. Просмотров 75k.

VBA Range

сэр Артур Конан Дойл

Это большая ошибка — теоретизировать, прежде чем кто-то получит данные

Эта статья охватывает все, что вам нужно знать об использовании ячеек и диапазонов в VBA. Вы можете прочитать его от начала до конца, так как он сложен в логическом порядке. Или использовать оглавление ниже, чтобы перейти к разделу по вашему выбору.

Рассматриваемые темы включают свойство смещения, чтение
значений между ячейками, чтение значений в массивы и форматирование ячеек.

Содержание

  1. Краткое руководство по диапазонам и клеткам
  2. Введение
  3. Важное замечание
  4. Свойство Range
  5. Свойство Cells рабочего листа
  6. Использование Cells и Range вместе
  7. Свойство Offset диапазона
  8. Использование диапазона CurrentRegion
  9. Использование Rows и Columns в качестве Ranges
  10. Использование Range вместо Worksheet
  11. Чтение значений из одной ячейки в другую
  12. Использование метода Range.Resize
  13. Чтение Value в переменные
  14. Как копировать и вставлять ячейки
  15. Чтение диапазона ячеек в массив
  16. Пройти через все клетки в диапазоне
  17. Форматирование ячеек
  18. Основные моменты

Краткое руководство по диапазонам и клеткам

Функция Принимает Возвращает Пример Вид
Range адреса
ячеек
диапазон
ячеек
.Range(«A1:A4») $A$1:$A$4
Cells строка,
столбец
одна
ячейка
.Cells(1,5) $E$1
Offset строка,
столбец
диапазон .Range(«A1:A2»)
.Offset(1,2)
$C$2:$C$3
Rows строка (-и) одна или
несколько
строк
.Rows(4)
.Rows(«2:4»)
$4:$4
$2:$4
Columns столбец
(-цы)
один или
несколько
столбцов
.Columns(4)
.Columns(«B:D»)
$D:$D
$B:$D

Введение

Это третья статья, посвященная трем основным элементам VBA. Этими тремя элементами являются Workbooks, Worksheets и Ranges/Cells. Cells, безусловно, самая важная часть Excel. Почти все, что вы делаете в Excel, начинается и заканчивается ячейками.

Вы делаете три основных вещи с помощью ячеек:

  1. Читаете из ячейки.
  2. Пишите в ячейку.
  3. Изменяете формат ячейки.

В Excel есть несколько методов для доступа к ячейкам, таких как Range, Cells и Offset. Можно запутаться, так как эти функции делают похожие операции.

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

Давайте начнем с самого простого метода доступа к ячейкам — с помощью свойства Range рабочего листа.

Важное замечание

Я недавно обновил эту статью, сейчас использую Value2.

Вам может быть интересно, в чем разница между Value, Value2 и значением по умолчанию:

' Value2
Range("A1").Value2 = 56

' Value
Range("A1").Value = 56

' По умолчанию используется значение
Range("A1") = 56

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

Лучше использовать Value2, поскольку он всегда будет возвращать фактическое значение ячейки.

Свойство Range

Рабочий лист имеет свойство Range, которое можно использовать для доступа к ячейкам в VBA. Свойство Range принимает тот же аргумент, что и большинство функций Excel Worksheet, например: «А1», «А3: С6» и т.д.

В следующем примере показано, как поместить значение в ячейку с помощью свойства Range.

Sub ZapisVYacheiku()

    ' Запишите число в ячейку A1 на листе 1 этой книги
    ThisWorkbook.Worksheets("Лист1").Range("A1").Value2 = 67

    ' Напишите текст в ячейку A2 на листе 1 этой рабочей книги
    ThisWorkbook.Worksheets("Лист1").Range("A2").Value2 = "Иван Петров"

    ' Запишите дату в ячейку A3 на листе 1 этой книги
    ThisWorkbook.Worksheets("Лист1").Range("A3").Value2 = #11/21/2019#

End Sub

Как видно из кода, Range является членом Worksheets, которая, в свою очередь, является членом Workbook. Иерархия такая же, как и в Excel, поэтому должно быть легко понять. Чтобы сделать что-то с Range, вы должны сначала указать рабочую книгу и рабочий лист, которому она принадлежит.

В оставшейся части этой статьи я буду использовать кодовое имя для ссылки на лист.

code name worksheet

Следующий код показывает приведенный выше пример с использованием кодового имени рабочего листа, т.е. Лист1 вместо ThisWorkbook.Worksheets («Лист1»).

Sub IspKodImya ()

    ' Запишите число в ячейку A1 на листе 1 этой книги    
     Sheet1.Range("A1").Value2 = 67

    ' Напишите текст в ячейку A2 на листе 1 этой рабочей книги
    Sheet1.Range("A2").Value2 = "Иван Петров"

    ' Запишите дату в ячейку A3 на листе 1 этой книги
    Sheet1.Range("A3").Value2 = #11/21/2019#

End Sub

Вы также можете писать в несколько ячеек, используя свойство
Range

Sub ZapisNeskol()

    ' Запишите число в диапазон ячеек
    Sheet1.Range("A1:A10").Value2 = 67

    ' Написать текст в несколько диапазонов ячеек
    Sheet1.Range("B2:B5,B7:B9").Value2 = "Иван Петров"

End Sub

Свойство Cells рабочего листа

У Объекта листа есть другое свойство, называемое Cells, которое очень похоже на Range . Есть два отличия:

  1. Cells возвращают диапазон только одной ячейки.
  2. Cells принимает строку и столбец в качестве аргументов.

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

Sub IspCells()

    ' Написать в А1
    Sheet1.Range("A1").Value2 = 10
    Sheet1.Cells(1, 1).Value2  = 10

    ' Написать в А10
    Sheet1.Range("A10").Value2 = 10
    Sheet1.Cells(10, 1).Value2  = 10

    ' Написать в E1
    Sheet1.Range("E1").Value2 = 10
    Sheet1.Cells(1, 5).Value2  = 10

End Sub

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

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

Использование свойства Cells полезно, если вы обращаетесь к
ячейке по номеру, который может отличаться. Проще объяснить это на примере.

В следующем коде мы просим пользователя указать номер столбца. Использование Cells дает нам возможность использовать переменное число для столбца.

Sub ZapisVPervuyuPustuyuYacheiku()

    Dim UserCol As Integer
    
    ' Получить номер столбца от пользователя
    UserCol = Application.InputBox("Пожалуйста, введите номер столбца...", Type:=1)
    
    ' Написать текст в выбранный пользователем столбец
    Sheet1.Cells(1, UserCol).Value2 = "Иван Петров"

End Sub

В приведенном выше примере мы используем номер для столбца,
а не букву.

Чтобы использовать Range здесь, потребуется преобразовать эти значения в ссылку на
буквенно-цифровую ячейку, например, «С1». Использование свойства Cells позволяет нам
предоставить строку и номер столбца для доступа к ячейке.

Иногда вам может понадобиться вернуть более одной ячейки, используя номера строк и столбцов. В следующем разделе показано, как это сделать.

Использование Cells и Range вместе

Как вы уже видели, вы можете получить доступ только к одной ячейке, используя свойство Cells. Если вы хотите вернуть диапазон ячеек, вы можете использовать Cells с Range следующим образом:

Sub IspCellsSRange()

    With Sheet1
        ' Запишите 5 в диапазон A1: A10, используя свойство Cells
        .Range(.Cells(1, 1), .Cells(10, 1)).Value2 = 5

        ' Диапазон B1: Z1 будет выделен жирным шрифтом
        .Range(.Cells(1, 2), .Cells(1, 26)).Font.Bold = True

    End With

End Sub

Как видите, вы предоставляете начальную и конечную ячейку
диапазона. Иногда бывает сложно увидеть, с каким диапазоном вы имеете дело,
когда значением являются все числа. Range имеет свойство Address, которое
отображает буквенно-цифровую ячейку для любого диапазона. Это может
пригодиться, когда вы впервые отлаживаете или пишете код.

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

Sub PokazatAdresDiapazona()

    ' Примечание. Использование подчеркивания позволяет разделить строки кода.
    With Sheet1

        ' Запишите 5 в диапазон A1: A10, используя свойство Cells
        .Range(.Cells(1, 1), .Cells(10, 1)).Value2 = 5
        Debug.Print "Первый адрес: " _
            + .Range(.Cells(1, 1), .Cells(10, 1)).Address

        ' Диапазон B1: Z1 будет выделен жирным шрифтом
        .Range(.Cells(1, 2), .Cells(1, 26)).Font.Bold = True
        Debug.Print "Второй адрес : " _
            + .Range(.Cells(1, 2), .Cells(1, 26)).Address

    End With

End Sub

В примере я использовал Debug.Print для печати в Immediate Window. Для просмотра этого окна выберите «View» -> «в Immediate Window» (Ctrl +  G).

ImmediateWindow

ImmediateSampeText

Свойство Offset диапазона

У диапазона есть свойство, которое называется Offset. Термин «Offset» относится к отсчету от исходной позиции. Он часто используется в определенных областях программирования. С помощью свойства «Offset» вы можете получить диапазон ячеек того же размера и на определенном расстоянии от текущего диапазона. Это полезно, потому что иногда вы можете выбрать диапазон на основе определенного условия. Например, на скриншоте ниже есть столбец для каждого дня недели. Учитывая номер дня (т.е. понедельник = 1, вторник = 2 и т.д.). Нам нужно записать значение в правильный столбец.

VBA Offset

Сначала мы попытаемся сделать это без использования Offset.

' Это Sub тесты с разными значениями
Sub TestSelect()

    ' Понедельник
    SetValueSelect 1, 111.21
    ' Среда
    SetValueSelect 3, 456.99
    ' Пятница
    SetValueSelect 5, 432.25
    ' Воскресение
    SetValueSelect 7, 710.17

End Sub

' Записывает значение в столбец на основе дня
Public Sub SetValueSelect(lDay As Long, lValue As Currency)

    Select Case lDay
        Case 1: Sheet1.Range("H3").Value2 = lValue
        Case 2: Sheet1.Range("I3").Value2 = lValue
        Case 3: Sheet1.Range("J3").Value2 = lValue
        Case 4: Sheet1.Range("K3").Value2 = lValue
        Case 5: Sheet1.Range("L3").Value2 = lValue
        Case 6: Sheet1.Range("M3").Value2 = lValue
        Case 7: Sheet1.Range("N3").Value2 = lValue
    End Select

End Sub

Как видно из примера, нам нужно добавить строку для каждого возможного варианта. Это не идеальная ситуация. Использование свойства Offset обеспечивает более чистое решение.

' Это Sub тесты с разными значениями
Sub TestOffset()

    DayOffSet 1, 111.01
    DayOffSet 3, 456.99
    DayOffSet 5, 432.25
    DayOffSet 7, 710.17

End Sub

Public Sub DayOffSet(lDay As Long, lValue As Currency)

    ' Мы используем значение дня с Offset, чтобы указать правильный столбец
    Sheet1.Range("G3").Offset(, lDay).Value2 = lValue

End Sub

Как видите, это решение намного лучше. Если количество дней увеличилось, нам больше не нужно добавлять код. Чтобы Offset был полезен, должна быть какая-то связь между позициями ячеек. Если столбцы Day в приведенном выше примере были случайными, мы не могли бы использовать Offset. Мы должны были бы использовать первое решение.

Следует иметь в виду, что Offset сохраняет размер диапазона. Итак .Range («A1:A3»).Offset (1,1) возвращает диапазон B2:B4. Ниже приведены еще несколько примеров использования Offset.

Sub IspOffset()

    ' Запись в В2 - без Offset
    Sheet1.Range("B2").Offset().Value2 = "Ячейка B2"

    ' Написать в C2 - 1 столбец справа
    Sheet1.Range("B2").Offset(, 1).Value2 = "Ячейка C2"

    ' Написать в B3 - 1 строка вниз
    Sheet1.Range("B2").Offset(1).Value2 = "Ячейка B3"

    ' Запись в C3 - 1 столбец справа и 1 строка вниз
    Sheet1.Range("B2").Offset(1, 1).Value2 = "Ячейка C3"

    ' Написать в A1 - 1 столбец слева и 1 строка вверх
    Sheet1.Range("B2").Offset(-1, -1).Value2 = "Ячейка A1"

    ' Запись в диапазон E3: G13 - 1 столбец справа и 1 строка вниз
    Sheet1.Range("D2:F12").Offset(1, 1).Value2 = "Ячейки E3:G13"

End Sub

Использование диапазона CurrentRegion

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

VBA CurrentRegion

Строка или столбец пустых ячеек означает конец CurrentRegion.

Вы можете вручную проверить
CurrentRegion в Excel, выбрав диапазон и нажав Ctrl + Shift + *.

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

Например:

Range («B3»). CurrentRegion вернет диапазон B3:D14

Range («D14»). CurrentRegion вернет диапазон B3:D14

Range («C8:C9»). CurrentRegion вернет диапазон B3:D14 и так далее

Как пользоваться

Мы получаем CurrentRegion следующим образом

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

Только чтение строк данных

Прочитать диапазон из второй строки, т.е. пропустить строку заголовка.

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

' Начало в строке 2 - строка после заголовка
Dim i As Long
For i = 2 To rg.Rows.Count
    ' текущая строка, столбец 1 диапазона
    Debug.Print rg.Cells(i, 1).Value2
Next i

Удалить заголовок

Удалить строку заголовка (т.е. первую строку) из диапазона. Например, если диапазон — A1:D4, это возвратит A2:D4

' CurrentRegion вернет B3:D14 из приведенного выше примера
Dim rg As Range
Set rg = Sheet1.Range("B3").CurrentRegion

' Удалить заголовок
Set rg = rg.Resize(rg.Rows.Count - 1).Offset(1)

' Начните со строки 1, так как нет строки заголовка
Dim i As Long
For i = 1 To rg.Rows.Count
    ' текущая строка, столбец 1 диапазона
    Debug.Print rg.Cells(i, 1).Value2
Next i

Использование Rows и Columns в качестве Ranges

Если вы хотите что-то сделать со всей строкой или столбцом,
вы можете использовать свойство «Rows и
Columns
» на рабочем листе. Они оба принимают один параметр — номер строки
или столбца, к которому вы хотите получить доступ.

Sub IspRowIColumns()

    ' Установите размер шрифта столбца B на 9
    Sheet1.Columns(2).Font.Size = 9

    ' Установите ширину столбцов от D до F
    Sheet1.Columns("D:F").ColumnWidth = 4

    ' Установите размер шрифта строки 5 до 18
    Sheet1.Rows(5).Font.Size = 18

End Sub

Использование Range вместо Worksheet

Вы также можете использовать Cella, Rows и Columns, как часть Range, а не как часть Worksheet. У вас может быть особая необходимость в этом, но в противном случае я бы избегал практики. Это делает код более сложным. Простой код — твой друг. Это уменьшает вероятность ошибок.

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

Sub IspColumnsVRange()

    ' Это выделит B1 и B2 жирным шрифтом.
    Sheet1.Range("A1:C2").Columns(2).Font.Bold = True

End Sub

Чтение значений из одной ячейки в другую

В большинстве примеров мы записали значения в ячейку. Мы
делаем это, помещая диапазон слева от знака равенства и значение для размещения
в ячейке справа. Для записи данных из одной ячейки в другую мы делаем то же
самое. Диапазон назначения идет слева, а диапазон источника — справа.

В следующем примере показано, как это сделать:

Sub ChitatZnacheniya()

    ' Поместите значение из B1 в A1
    Sheet1.Range("A1").Value2 = Sheet1.Range("B1").Value2

    ' Поместите значение из B3 в лист2 в ячейку A1
    Sheet1.Range("A1").Value2 = Sheet2.Range("B3").Value2

    ' Поместите значение от B1 в ячейки A1 до A5
    Sheet1.Range("A1:A5").Value2 = Sheet1.Range("B1").Value2

    ' Вам необходимо использовать свойство «Value», чтобы прочитать несколько ячеек
    Sheet1.Range("A1:A5").Value2 = Sheet1.Range("B1:B5").Value2

End Sub

Как видно из этого примера, невозможно читать из нескольких ячеек. Если вы хотите сделать это, вы можете использовать функцию копирования Range с параметром Destination.

Sub KopirovatZnacheniya()

    ' Сохранить диапазон копирования в переменной
    Dim rgCopy As Range
    Set rgCopy = Sheet1.Range("B1:B5")

    ' Используйте это для копирования из более чем одной ячейки
    rgCopy.Copy Destination:=Sheet1.Range("A1:A5")

    ' Вы можете вставить в несколько мест назначения
    rgCopy.Copy Destination:=Sheet1.Range("A1:A5,C2:C6")

End Sub

Функция Copy копирует все, включая формат ячеек. Это тот же результат, что и ручное копирование и вставка выделения. Подробнее об этом вы можете узнать в разделе «Копирование и вставка ячеек»

Использование метода Range.Resize

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

Использование функции Resize позволяет изменить размер
диапазона до заданного количества строк и столбцов.

Например:

Sub ResizePrimeri()
 
    ' Печатает А1
    Debug.Print Sheet1.Range("A1").Address

    ' Печатает A1:A2
    Debug.Print Sheet1.Range("A1").Resize(2, 1).Address

    ' Печатает A1:A5
    Debug.Print Sheet1.Range("A1").Resize(5, 1).Address
    
    ' Печатает A1:D1
    Debug.Print Sheet1.Range("A1").Resize(1, 4).Address
    
    ' Печатает A1:C3
    Debug.Print Sheet1.Range("A1").Resize(3, 3).Address
    
End Sub

Когда мы хотим изменить наш целевой диапазон, мы можем
просто использовать исходный размер диапазона.

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

Sub Resize()

    Dim rgSrc As Range, rgDest As Range
    
    ' Получить все данные в текущей области
    Set rgSrc = Sheet1.Range("A1").CurrentRegion

      ' Получить диапазон назначения
    Set rgDest = Sheet2.Range("A1")
    Set rgDest = rgDest.Resize(rgSrc.Rows.Count, rgSrc.Columns.Count)
    
    rgDest.Value2 = rgSrc.Value2

End Sub

Мы можем сделать изменение размера в одну строку, если нужно:

Sub Resize2()

    Dim rgSrc As Range
    
    ' Получить все данные в ткущей области
    Set rgSrc = Sheet1.Range("A1").CurrentRegion
    
    With rgSrc
        Sheet2.Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value2
    End With
    
End Sub

Чтение Value в переменные

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

Sub IspVar()

    ' Создайте
    Dim val As Integer

    ' Читать число из ячейки
    val = Sheet1.Range("A1").Value2

    ' Добавить 1 к значению
    val = val + 1

    ' Запишите новое значение в ячейку
    Sheet1.Range("A2").Value2 = val

End Sub

Для чтения текста в переменную вы используете переменную
типа String.

Sub IspVarText()

    ' Объявите переменную типа string
    Dim sText As String

    ' Считать значение из ячейки
    sText = Sheet1.Range("A1").Value2

    ' Записать значение в ячейку
    Sheet1.Range("A2").Value2 = sText

End Sub

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

Sub VarNeskol()

    ' Считать значение из ячейки
    Sheet1.Range("A1:B10").Value2 = 66

End Sub

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

Как копировать и вставлять ячейки

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

Вы можете просто скопировать ряд ячеек, как здесь:

Range("A1:B4").Copy Destination:=Range("C5")

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

Работает так:

Range("A1:B4").Copy
Range("F3").PasteSpecial Paste:=xlPasteValues
Range("F3").PasteSpecial Paste:=xlPasteFormats
Range("F3").PasteSpecial Paste:=xlPasteFormulas

В следующей таблице приведен полный список всех типов вставок.

Виды вставок
xlPasteAll
xlPasteAllExceptBorders
xlPasteAllMergingConditionalFormats
xlPasteAllUsingSourceTheme
xlPasteColumnWidths
xlPasteComments
xlPasteFormats
xlPasteFormulas
xlPasteFormulasAndNumberFormats
xlPasteValidation
xlPasteValues
xlPasteValuesAndNumberFormats

Чтение диапазона ячеек в массив

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

Range("A3:Z3").Value2 = Range("A1:Z1").Value2

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

В следующем коде показан пример использования массива с
диапазоном.

Sub ChitatMassiv()

    ' Создать динамический массив
    Dim StudentMarks() As Variant

    ' Считать 26 значений в массив из первой строки
    StudentMarks = Range("A1:Z1").Value2

    ' Сделайте что-нибудь с массивом здесь

    ' Запишите 26 значений в третью строку
    Range("A3:Z3").Value2 = StudentMarks

End Sub

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

Пройти через все клетки в диапазоне

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

Вы можете сделать это, используя цикл For Each, показанный в следующем коде.

Sub PeremeschatsyaPoYacheikam()

    ' Пройдите через каждую ячейку в диапазоне
    Dim rg As Range
    For Each rg In Sheet1.Range("A1:A10,A20")
        ' Распечатать адрес ячеек, которые являются отрицательными
        If rg.Value < 0 Then
            Debug.Print rg.Address + " Отрицательно."
        End If
    Next

End Sub

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

Стандартный цикл более гибок в отношении используемого вами
порядка, но он медленнее, чем цикл For Each.

Sub PerehodPoYacheikam()
 
    ' Пройдите клетки от А1 до А10
    Dim i As Long
    For i = 1 To 10
        ' Распечатать адрес ячеек, которые являются отрицательными
        If Range("A" & i).Value < 0 Then
            Debug.Print Range("A" & i).Address + " Отрицательно."
        End If
    Next
 
    ' Пройдите в обратном порядке, то есть от A10 до A1
    For i = 10 To 1 Step -1
        ' Распечатать адрес ячеек, которые являются отрицательными
        If Range("A" & i) < 0 Then
            Debug.Print Range("A" & i).Address + " Отрицательно."
        End If
    Next
 
End Sub

Форматирование ячеек

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

Sub FormatirovanieYacheek()

    With Sheet1

        ' Форматировать шрифт
        .Range("A1").Font.Bold = True
        .Range("A1").Font.Underline = True
        .Range("A1").Font.Color = rgbNavy

        ' Установите числовой формат до 2 десятичных знаков
        .Range("B2").NumberFormat = "0.00"
        ' Установите числовой формат даты
        .Range("C2").NumberFormat = "dd/mm/yyyy"
        ' Установите формат чисел на общий
        .Range("C3").NumberFormat = "Общий"
        ' Установить числовой формат текста
        .Range("C4").NumberFormat = "Текст"

        ' Установите цвет заливки ячейки
        .Range("B3").Interior.Color = rgbSandyBrown

        ' Форматировать границы
        .Range("B4").Borders.LineStyle = xlDash
        .Range("B4").Borders.Color = rgbBlueViolet

    End With

End Sub

Основные моменты

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

  1. Range возвращает диапазон ячеек
  2. Cells возвращают только одну клетку
  3. Вы можете читать из одной ячейки в другую
  4. Вы можете читать из диапазона ячеек в другой диапазон ячеек.
  5. Вы можете читать значения из ячеек в переменные и наоборот.
  6. Вы можете читать значения из диапазонов в массивы и наоборот
  7. Вы можете использовать цикл For Each или For, чтобы проходить через каждую ячейку в диапазоне.
  8. Свойства Rows и Columns позволяют вам получить доступ к диапазону ячеек этих типов

Свойства ячейки, часто используемые в коде VBA Excel. Демонстрация свойств ячейки, как структурной единицы объекта Range, на простых примерах.

Объект Range в VBA Excel представляет диапазон ячеек. Он (объект Range) может описывать любой диапазон, начиная от одной ячейки и заканчивая сразу всеми ячейками рабочего листа.

Примеры диапазонов:

  • Одна ячейка – Range("A1").
  • Девять ячеек – Range("A1:С3").
  • Весь рабочий лист в Excel 2016 – Range("1:1048576").

Для справки: выражение Range("1:1048576") описывает диапазон с 1 по 1048576 строку, где число 1048576 – это номер последней строки на рабочем листе Excel 2016.

В VBA Excel есть свойство Cells объекта Range, которое позволяет обратиться к одной ячейке в указанном диапазоне (возвращает объект Range в виде одной ячейки). Если в коде используется свойство Cells без указания диапазона, значит оно относится ко всему диапазону активного рабочего листа.

Примеры обращения к одной ячейке:

  • Cells(1000), где 1000 – порядковый номер ячейки на рабочем листе, возвращает ячейку «ALL1».
  • Cells(50, 20), где 50 – номер строки рабочего листа, а 20 – номер столбца, возвращает ячейку «T50».
  • Range("A1:C3").Cells(6), где «A1:C3» – заданный диапазон, а 6 – порядковый номер ячейки в этом диапазоне, возвращает ячейку «C2».

Для справки: порядковый номер ячейки в диапазоне считается построчно слева направо с перемещением к следующей строке сверху вниз.

Подробнее о том, как обратиться к ячейке, смотрите в статье: Ячейки (обращение, запись, чтение, очистка).

В этой статье мы рассмотрим свойства объекта Range, применимые, в том числе, к диапазону, состоящему из одной ячейки.

Еще надо добавить, что свойства и методы объектов отделяются от объектов точкой, как в третьем примере обращения к одной ячейке: Range("A1:C3").Cells(6).

Свойства ячейки (объекта Range)

Свойство Описание
Address Возвращает адрес ячейки (диапазона).
Borders Возвращает коллекцию Borders, представляющую границы ячейки (диапазона). Подробнее…
Cells Возвращает объект Range, представляющий коллекцию всех ячеек заданного диапазона. Указав номер строки и номер столбца или порядковый номер ячейки в диапазоне, мы получаем конкретную ячейку. Подробнее…
Characters Возвращает подстроку в размере указанного количества символов из текста, содержащегося в ячейке. Подробнее…
Column Возвращает номер столбца ячейки (первого столбца диапазона). Подробнее…
ColumnWidth Возвращает или задает ширину ячейки в пунктах (ширину всех столбцов в указанном диапазоне).
Comment Возвращает комментарий, связанный с ячейкой (с левой верхней ячейкой диапазона).
CurrentRegion Возвращает прямоугольный диапазон, ограниченный пустыми строками и столбцами. Очень полезное свойство для возвращения рабочей таблицы, а также определения номера последней заполненной строки.
EntireColumn Возвращает весь столбец (столбцы), в котором содержится ячейка (диапазон). Диапазон может содержаться и в одном столбце, например, Range("A1:A20").
EntireRow Возвращает всю строку (строки), в которой содержится ячейка (диапазон). Диапазон может содержаться и в одной строке, например, Range("A2:H2").
Font Возвращает объект Font, представляющий шрифт указанного объекта. Подробнее о цвете шрифта…
HorizontalAlignment Возвращает или задает значение горизонтального выравнивания содержимого ячейки (диапазона). Подробнее…
Interior Возвращает объект Interior, представляющий внутреннюю область ячейки (диапазона). Применяется, главным образом, для возвращения или назначения цвета заливки (фона) ячейки (диапазона). Подробнее…
Name Возвращает или задает имя ячейки (диапазона).
NumberFormat Возвращает или задает код числового формата для ячейки (диапазона). Примеры кодов числовых форматов можно посмотреть, открыв для любой ячейки на рабочем листе Excel диалоговое окно «Формат ячеек», на вкладке «(все форматы)». Свойство NumberFormat диапазона возвращает значение NULL, за исключением тех случаев, когда все ячейки в диапазоне имеют одинаковый числовой формат. Если нужно присвоить ячейке текстовый формат, записывается так: Range("A1").NumberFormat = "@". Общий формат: Range("A1").NumberFormat = "General".
Offset Возвращает объект Range, смещенный относительно первоначального диапазона на указанное количество строк и столбцов. Подробнее…
Resize Изменяет размер первоначального диапазона до указанного количества строк и столбцов. Строки добавляются или удаляются снизу, столбцы – справа. Подробнее…
Row Возвращает номер строки ячейки (первой строки диапазона). Подробнее…
RowHeight Возвращает или задает высоту ячейки в пунктах (высоту всех строк в указанном диапазоне).
Text Возвращает форматированный текст, содержащийся в ячейке. Свойство Text диапазона возвращает значение NULL, за исключением тех случаев, когда все ячейки в диапазоне имеют одинаковое содержимое и один формат. Предназначено только для чтения. Подробнее…
Value Возвращает или задает значение ячейки, в том числе с отображением значений в формате Currency и Date. Тип данных Variant. Value является свойством ячейки по умолчанию, поэтому в коде его можно не указывать.
Value2 Возвращает или задает значение ячейки. Тип данных Variant. Значения в формате Currency и Date будут отображены в виде чисел с типом данных Double.
VerticalAlignment Возвращает или задает значение вертикального выравнивания содержимого ячейки (диапазона). Подробнее…

В таблице представлены не все свойства объекта Range. С полным списком вы можете ознакомиться не сайте разработчика.

Простые примеры для начинающих

Вы можете скопировать примеры кода VBA Excel в стандартный модуль и запустить их на выполнение. Как создать стандартный модуль и запустить процедуру на выполнение, смотрите в статье VBA Excel. Начинаем программировать с нуля.

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

Форматирование ячеек

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

Sub Primer1()

MsgBox «Зальем ячейку A1 зеленым цветом и запишем в ячейку B1 текст: «Ячейка A1 зеленая!»»

Range(«A1»).Interior.Color = vbGreen

Range(«B1»).Value = «Ячейка A1 зеленая!»

MsgBox «Сделаем высоту строки, в которой находится ячейка A2, в 2 раза больше высоты ячейки A1, « _

& «а в ячейку B1 вставим текст: «Наша строка стала в 2 раза выше первой строки!»»

Range(«A2»).RowHeight = Range(«A1»).RowHeight * 2

Range(«B2»).Value = «Наша строка стала в 2 раза выше первой строки!»

MsgBox «Запишем в ячейку A3 высоту 2 строки, а в ячейку B3 вставим текст: «Такова высота второй строки!»»

Range(«A3»).Value = Range(«A2»).RowHeight

Range(«B3»).Value = «Такова высота второй строки!»

MsgBox «Применим к столбцу, в котором содержится ячейка B1, метод AutoFit для автоподбора ширины»

Range(«B1»).EntireColumn.AutoFit

MsgBox «Выделим текст в ячейке B2 красным цветом и выровним его по центру (по вертикали)»

Range(«B2»).Font.Color = vbRed

Range(«B2»).VerticalAlignment = xlCenter

MsgBox «Добавим к ячейкам диапазона A1:B3 границы»

Range(«A1:B3»).Borders.LineStyle = True

MsgBox «Сделаем границы ячеек в диапазоне A1:B3 двойными»

Range(«A1:B3»).Borders.LineStyle = xlDouble

MsgBox «Очистим ячейки диапазона A1:B3 от заливки, выравнивания, границ и содержимого»

Range(«A1:B3»).Clear

MsgBox «Присвоим высоте второй строки высоту первой, а ширине второго столбца — ширину первого»

Range(«A2»).RowHeight = Range(«A1»).RowHeight

Range(«B1»).ColumnWidth = Range(«A1»).ColumnWidth

MsgBox «Демонстрация форматирования ячеек закончена!»

End Sub

Вычисления в ячейках (свойство Value)

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Sub Primer2()

MsgBox «Запишем в ячейку A1 число 25.3, а в ячейку B1 — число 34.42»

Range(«A1»).Value = 25.3

Range(«B1»).Value = 34.42

MsgBox «Запишем в ячейку C1 произведение чисел, содержащихся в ячейках A1 и B1»

Range(«C1»).Value = Range(«A1»).Value * Range(«B1»).Value

MsgBox «Запишем в ячейку D1 формулу, которая перемножает числа в ячейках A1 и B1»

Range(«D1»).Value = «=A1*B1»

MsgBox «Заменим содержимое ячеек A1 и B1 на числа 6.258 и 54.1, а также активируем ячейку D1»

Range(«A1»).Value = 6.258

Range(«B1»).Value = 54.1

Range(«D1»).Activate

MsgBox «Мы видим, что в ячейке D1 произведение изменилось, а в строке состояния отображается формула; « _

& «следующим шагом очищаем задействованные ячейки»

Range(«A1:D1»).Clear

MsgBox «Демонстрация вычислений в ячейках завершена!»

End Sub

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

Различие свойств Text, Value и Value2

Построение с помощью кода VBA Excel таблицы с результатами сравнения того, как свойства Text, Value и Value2 возвращают число, дату и текст.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

Sub Primer3()

‘Присваиваем ячейкам всей таблицы общий формат на тот

‘случай, если формат отдельных ячеек ранее менялся

Range(«A1:E4»).NumberFormat = «General»

‘добавляем сетку (границы ячеек)

Range(«A1:E4»).Borders.LineStyle = True

‘Создаем строку заголовков

Range(«A1») = «Значение»

Range(«B1») = «Код формата» ‘формат соседней ячейки в столбце A

Range(«C1») = «Свойство Text»

Range(«D1») = «Свойство Value»

Range(«E1») = «Свойство Value2»

‘Назначаем строке заголовков жирный шрифт

Range(«A1:E1»).Font.Bold = True

‘Задаем форматы ячейкам A2, A3 и A4

‘Ячейка A2 — числовой формат с разделителем триад и двумя знаками после запятой

‘Ячейка A3 — формат даты «ДД.ММ.ГГГГ»

‘Ячейка A4 — текстовый формат

Range(«A2»).NumberFormat = «# ##0.00»

Range(«A3»).NumberFormat = «dd.mm.yyyy»

Range(«A4»).NumberFormat = «@»

‘Заполняем ячейки A2, A3 и A4 значениями

Range(«A2») = 2362.4568

Range(«A3») = CDate(«01.01.2021»)

‘Функция CDate преобразует текстовый аргумент в формат даты

Range(«A4») = «Озеро Байкал»

‘Заполняем ячейки B2, B3 и B4 кодами форматов соседних ячеек в столбце A

Range(«B2») = Range(«A2»).NumberFormat

Range(«B3») = Range(«A3»).NumberFormat

Range(«B4») = Range(«A4»).NumberFormat

‘Присваиваем ячейкам C2-C4 значения свойств Text ячеек A2-A4

Range(«C2») = Range(«A2»).Text

Range(«C3») = Range(«A3»).Text

Range(«C4») = Range(«A4»).Text

‘Присваиваем ячейкам D2-D4 значения свойств Value ячеек A2-A4

Range(«D2») = Range(«A2»).Value

Range(«D3») = Range(«A3»).Value

Range(«D4») = Range(«A4»).Value

‘Присваиваем ячейкам E2-E4 значения свойств Value2 ячеек A2-A4

Range(«E2») = Range(«A2»).Value2

Range(«E3») = Range(«A3»).Value2

Range(«E4») = Range(«A4»).Value2

‘Применяем к таблице автоподбор ширины столбцов

Range(«A1:E4»).EntireColumn.AutoFit

End Sub

Результат работы кода:

Сравнение свойств ячейки Text, Value и Value2

В таблице наглядно видна разница между свойствами Text, Value и Value2 при применении их к ячейкам с отформатированным числом и датой. Свойство Text еще отличается от Value и Value2 тем, что оно предназначено только для чтения.


Every Excel user is familiar with selecting a range of cells – by SHIFT + Clicking, CTRL + Clicking, or dragging the mouse over a range of cells.

But how does one select a range in VBA? In this article, I’ll guide you on how to select a range of cells and activate a particular cell in that range. I’ll also show you practical examples on how you can do this in your Excel workbooks. For a more in-depth discussion on selecting ranges in VBA, consider taking this course on Visual Basic for MS Excel.

What is Range?

A range, as you might have guessed, refers to a cell or a range of cells. A range can be of three types:

  • One cell (even a single cell selection is called a range)

  • Multiple cells

  • Multiple non-contiguous cells – the same as CTRL + Clicking cells

Every cell selected in the range must be within the same worksheet. As of now, Excel does not support multi-dimensional ranges (i.e. ranges spread over multiple worksheets).

You will use the Range function a lot in your VBA programming since it makes selecting a cell or a range of cells so effortlessly easy.

Syntax

The basic syntax of the VBA range command is as follows:

Range(Cell 1. Cell 2)

Where

Cell 1 (required) = The actual range/cell to be acted on. This should be a specific cell name (“A1”) or a range of cells (“A1: A10”).

Cell 2 (optional) = The top-left or bottom-right of the cell range to be selected.

Range can accept not just cell names and ranges, but also strings:

Range(“SalesVolume”)

This will select cells which have the value of “SalesVolume”.

You can even nest ranges inside each other and select specific strings:

Range(“A1:A20”, Range(“SalesVolume”))

This will refer to all the cells in the range A1:A20 that hold the value “SalesVolume”

To see how it works, let’s take a look at a few examples:

Example 1: Inserting a Value into a Selected Range

Let’s say we want to fill the first ten rows in column A with the value “Hello”. To do this, we will add te following code to our VBA macro:

Worksheets(“Sheet1”).Range(“A1:A10”).Value = “Hello”

Where,

Worksheets(“Sheet1”) = Name of active worksheet

.Range(“A1:A10”) = Range of cells to be selected

.Value = “Hello” = Value to be inserted in the cells

The result:

We can achieve the same result by typing the following:

Worksheets(“Sheet1”).Range(“A1”,”A10”).Value = “Hello”

Note: The ‘Worksheet(“Sheet1”)’ part isn’t really required if you are working with just one sheet, but is a necessity in any multi-sheet workbook.

Confused? Check out this comprehensive course on Excel, macros and VBA and clear your doubts.

Example 2: Inserting a Formula in a Range of Cells

Let’s say we have a range of values in a spreadsheet like this:

(We actually populated this spreadsheet using the .Range method described above).

We can use the following formula to calculate the sum of all these values:

Range(“C1”).Formula = “=sum(A1:B10)”

Notice how we use .Formula instead of .Value.

The result:

Example 3: Changing Formatting in a Range of Cells

The Range function isn’t useful for adding formulas and inserting values alone. It can also be a useful tool for changing the values of specific cells.

Here, we will change the formatting in a range of cells to Bold. This is the original worksheet:

Here’s the formula we’ll use:

And here’s the result:

The important thing to note here is how we’ve used the two cell ranges to select only cells C3:C5. The first cell range (Cells(3,3)) specifies that only cells from the third column are to be selected. If we wanted to select the first column, we would write Cells(1,1).

The second cell range specifies the rows. It goes from the higher cell number to the lower cell number ((5,3) not (3,5)).

Using Excel 2007? This course will get you up to speed on using VBA in Excel 2007.

Example 4: Using the Offset Method

Another way to select a range is to use the Offset method. The basic syntax looks like this:

Range(“A1”).Offset(2,3).Value = 4

This will change the value of the cell two cells below, and three cells to the right of A1 to 4.

Let’s use it in a spreadsheet and see what the result is:

This makes the cell E3 (two cells down, three cells right – offset(2,3)) = 4

The Offset method is particularly useful with variables.

Let’s create a little program that will populate a range of rows and columns with all odd numbers from 1 to 50.

Sub macro_1()
Num = 1
For Row = 0 To 4
For Col = 0 To 4
Range(“A1”).Offset(Row, Col).Value = Num
Num = Num + 2
Next Col
Next Row
End Sub

Here, we’re starting from number 1 and referring to the first five rows and columns (remember that Excel counts from 0, which is inclusive). Instead of specifying a particular row or column, we’ve used two variables with Offset. We’ve also increased the number by 2 within our loop to create a progression.

The end result looks like this:

This example just goes to show how useful the Range command can be.

Besides all these features, you can also use Range to select a particular cell:

Range(“A1”).Select

Or to make a particular cell range active:

Range(“A1:A20”).Activate

You’ll turn to these functions regularly in your VBA programming. To find out more about Range and other similar advanced VBA features, take this foundation course on Excel, macros, and Visual Basic for Applications.

Any tips and tricks on using Range? Let us know in the comments below!

Что такое диапазон в Excel.

​Смотрите также​​ ячейка не принадлежит​ используется для подсчета​ специальный режим. В​ его первую ячейку.​ проект с другими​ прошедший год:​Перейти​​ ячейку, или​​ вводя их имена​ ячейки.​ – подсчитывает число​.​
​B11​ группе Определенные имена​ найти быстро нужное​ таблицу, др.».​Диапазон в Excel​ выделенной области.​​ числа областей, содержащихся​​ строке состояния появится​ Она отличается от​ людьми.​Как видите, если ячейке​​.​B1:B3​ и ссылок на​Чтобы​ значений в столбце​​Но, если перед составлением​, в которой будет​​ выберите команду Присвоить​ место в таблице.​Как задать диапазон в​– это несколько​Если выделить несколько ячеек​
​ в переданной ссылке,​ сообщение: «Расширить выделенный​ других ячеек цветом​
​В поле​ или диапазону, на​
​Совет:​, чтобы выделить диапазон​ ячейки можно использовать​
​скопировать значение, формулу на​ А. Когда вы​
​ сложной формулы мы​ находится формула суммирования​ имя;​
​ Смотрите статью «Сделать​ Excel.​ ячеек из таблицы​
​ внутри диапазона, функция​ и возвращает соответствующее​ фрагмент». И теперь​ фона.​Диапазон​
​ которые ссылается формула,​ Чтобы быстро найти и​ из трех ячеек.​ поле имени.​ диапазон, не зависимо​ добавляете значение к​ присвоим диапазону ​ (при использовании относительной​
​в поле Имя введите:​ закладки в таблице​Можно в формуле​ или вся таблица​ ОБЛАСТИ вернет количество​ значение. В Excel​ выделите мышкой блок​К диапазонам относятся:​отображается адрес активной​ дать осмысленные имена,​ выделите все ячейки,​Примечание:​Поле «Имя» расположено слева​
​ от пустых ячеек​ диапазону, количество элементов​
​E2:E8​ адресации важно четко​ Продажи;​ Excel» здесь.​ написать адрес диапазона​ как один диапазон.​ выделенных ячеек:​ областью является одна​ F2:K5. Как видите,​
​Несколько ячеек выделенных блоком​ области, т.е. адрес​
​ то формула станет​ содержащие определенных типов​ В поле​ от строки формул.​, делаем так.​ увеличивается. В результате,​ какое-нибудь имя (например, Цены),​ фиксировать нахождение активной​в поле Область выберите​
​Подробнее о том,​​ через двоеточие. А​​ Выделяют диапазон ячеек,​
​Описанные особенности работы данной​ ячейка либо интервал​ в данном режиме​ (=B5:D8).​ ячейки или диапазона,​
​ гораздо понятнее.​
​ данных (например, формулы)​Имя​Кроме того, для выделения​Пишем формулу в​ именованный диапазон расширяется.​ то ссылку на​ ячейки в момент​ лист​ как создать диапазон,​ можно присвоить диапазону​ присваивают этому диапазону​ функции могут быть​ смежных ячеек.​ мы имеем возможность​Одна ячейка (=A2:A2).​ которые мы выбрали​Чтобы присвоить имя ячейке​ или только ячейки,​
​невозможно удалить или​ именованных и неименованных​​ ячейке, у нас,​
​Нажмите​ диапазон придется менять​ создания имени);​1сезон​ как правильно выделить​ имя и указывать​ имя​
​ полезны при работе​
​Пример 1. Вернуть число,​ выделять стразу несколько​Целая строка (=18:18) или​ ранее. При необходимости​
​ или диапазону этим​ которые удовлетворяют определенным​
​ изменить имена, определенные​ ячеек и диапазонов​
​ в примере, ячейка​
​ОК​только 1 раз​на вкладке Формулы в​(имя будет работать​​ несмежные ячейки, присвоить​ это имя в​-именованный диапазон в Excel​ с большим количеством​ соответствующее количеству областей​ диапазонов. Чтобы вернутся​ несколько строк (=18:22).​ данный диапазон можно​
​ способом, проделайте следующие​ критериям (например, только​ для ячеек и​ можно использовать команду​ L1.​, а затем​и даже не​ группе Определенные имена​ только на этом​ имя диапазону, как​

excel-office.ru

Именованный диапазон в MS EXCEL

​ формуле или искать​. Это имя используют​ таблиц данных.​ в диапазонах A1:B7,​ в обычный режим​Целый столбец (=F:F) или​ перезадать. Для этого​ действия:​ видимые ячейки или​

​ диапазонов. Имена можно​Перейти​=H1+K1​Close​ в формуле, а​ выберите команду Присвоить​ листе) или оставьте​

​ быстро найти диапазон,​ диапазон в диспетчере​ при работе с​Функция находиться в категории​ C14:E19, D9, Пример2!A4:C6.​ работы, повторно нажмите​ несколько столбцов (=F:K).​ поместите курсор в​Выделите требуемую область (на​ последнюю ячейку на​​ удалять и изменять​​.​Выделяем эту ячейку.​(Закрыть).​ в Диспетчере имен!​ имя;​

​ значение Книга, чтобы​​ как удалить диапазон,​ задач, т.д..​ таблицей, при поиске,​ формул «Ссылки и​Исходные данные на листе​ F8.​

​Несколько несмежных диапазонов (=N5:P8;E18:H25;I5:L22).​ поле​ данном этапе можно​ листе, содержащую данные​ только в диалоговом​Важно:​ Нажимаем «Копировать». Как​

Задача1 (Именованный диапазон с абсолютной адресацией)

​Теперь, когда вы добавляете​=СУММ(Цены)+СРЗНАЧ(Цены)/5+10/СУММ(Цены)​в поле Имя введите:​ имя было доступно​

​ изменить его, др.,​​Как указать диапазон в​​ в формулах, т.д.​ Массивы». Она имеет​ «Пример1»:​

​Как выделить большой диапазон​

  • ​Целый лист (=1:1048576).​​Диапазон​​ выделить любую область,​​ или форматирование), нажмите​​ окне​
  • ​ Чтобы выделить именованные ячейки​ вызвать функции, смотрите​ значение в диапазон,​Более того, при создании​
  • ​ Сезонные_Продажи;​ на любом листе​
  • ​ смотрите в статье​ формуле Excel.​​Ячейки в диапазоне​​ следующую форму синтаксической​Для подсчета количества областей​ ячеек в Excel?​Все выше перечисленные виды​, вокруг указанной области​ в дальнейшем вы​ кнопку​
  • ​Диспетчер имен​ и диапазоны, необходимо​ в статье «Функции​
  • ​ Excel автоматически обновляет​

​ формул EXCEL будет​в поле Область выберите​​ книги;​​ «Диапазон в Excel».​Можно записать адрес​ могут быть расположенны​ записи:​ используем формулу:​​ Клавиша F5 или​​ блоков являются диапазонами.​

​ появится динамическая граница.​ сможете ее перезадать).​Выделить​

​(вкладка​ сначала определить их​ Excel. Контекстное меню»​ сумму.​ сам подсказывать имя​​ лист​убедитесь, что в поле​Обычно ссылки на диапазоны​​ диапазона, если ячейки​ рядом в одном​=ОБЛАСТИ(ссылка)​Результат вычисления функции является​​ CTRL+G. В появившемся​​​

​Мышкой выделите новую область​ Мы выделим ячейку​в​Формулы​

Задача2 (Именованный диапазон с относительной адресацией)

​ имена на листе.​ тут. В строке​Урок подготовлен для Вас​ диапазона! Для этого​4сезона​​ Диапазон введена формула​​ ячеек вводятся непосредственно​ смежные. Например, A1:​​ столбце, в одной​​Описание аргумента:​ ошибка #ЗНАЧ!, поскольку​​ окне, в поле​​Выделение диапазонов – это​

​ или укажите эту​ С3, а затем​Перейти к​, группа​ Сведения об именовании​ адреса ячейки пишем​ командой сайта office-guru.ru​ достаточно ввести первую​(имя будет работать​ =’1сезон’!$B$2:$B$10​​ в формулы, например​​ D2. Значит, в​

​ строке, в нескольких​

  • ​ссылка – обязательный для​​ диапазон «Пример2!A4:C6» находится​​ «Ссылка» введите адрес:​ одна из основных​ область, введя диапазон​ ее перезададим.​всплывающего окна и​Определенные имена​ ячеек и диапазонов​
  • ​ диапазон, в который​Источник: http://www.excel-easy.com/examples/dynamic-named-range.html​ букву его имени.​ только на этом​
  • ​нажмите ОК.​ =СУММ(А1:А10). Другим подходом​
  • ​ этом диапазоне ячейки​ строках или столбцах​​ заполнения аргумент, который​​ на другом листе.​ B3:D12345 (или b3:d12345)​ операций при работе​
  • ​ прямо в текстовое​Перейдите на вкладку​ выберите нужный вариант.​
  • ​). Дополнительные сведения см.​

​ см. в статье​ хотим скопировать формулу.​Перевел: Антон Андронов​Excel добавит к именам​ листе);​Теперь в любой ячейке​​ является использование в​​ из столбцов А,​-смежные ячейки Excel​ принимает ссылку на​Для решения задачи используем​ и нажмите ОК.​ с Excel. Диапазоны​ поле. В нашем​

​Формулы​Excel предлагает несколько способов​​ в статье Определение​​ Определение и использование​ У нас стоит​Автор: Антон Андронов​​ формул, начинающихся на​​убедитесь, что в поле​ листа​ качестве ссылки имени​ B, C, D​​. Здесь в черном​​ одну или несколько​ формулу с помощью​

​ Таким образом, вы​
​ используют:​ случае мы выберем​и выберите команду​ присвоить имя ячейке​​ и использование имен​​ имен в формулах.​ диапазон L1:M8 (т.е.​Есть несколько способов​ эту букву, еще​

Использование именованных диапазонов в сложных формулах

​ Диапазон введена формула​1сезон​ диапазона. В статье​ первой и второй​ квадрате выделен диапазон,​ ячеек из указанного​

​ функции СУММ:​

​ без труда захватили​при заполнении данных;​ ячейку D2.​Присвоить имя​ или диапазону. Мы​​ в формулах.​​В поле​​ два столбца).​​ быстро​

​ и имя диапазона!​ =’4сезона’!B$2:B$10​можно написать формулу​​ рассмотрим какие преимущества​​ строки.​ состоящий из смежных​ диапазона.​​Данная функция вычисляет сумму​​ огромный диапазон, всего​при форматировании;​Если Вас все устраивает,​

​.​

​ же в рамках​На вкладке «​Имя​Нажимаем «Enter». У нас​заполнить диапазон в Excel​Динамический именованный диапазон автоматически​

​нажмите ОК.​ в простом и​ дает использование имени.​А можно сделать​

excel2.ru

Динамический именованный диапазон в Excel

​ ячеек.​Примечания:​ полученных значений в​

  1. ​ за пару кликов.​​при очистке и удалении​​ смело жмите​Откроется диалоговое окно​​ данного урока рассмотрим​​Главная​
  2. ​, которое расположено слева​Динамический именованный диапазон в Excel
  3. ​ в таблице выделился​ различными данными, формулами​ расширяется при добавлении​Динамический именованный диапазон в Excel

​Мы использовали смешанную адресацию​ наглядном виде: =СУММ(Продажи).​Назовем Именованным диапазоном в​именованный диапазон Excel​

  1. ​А могут ячейки​​Аргументом рассматриваемой функции может​​ результате выполнения функций​​В поле «Имя» (которое​​ ячеек;​Динамический именованный диапазон в Excel
  2. ​ОК​​Создание имени​​ только 2 самых​Динамический именованный диапазон в Excel
  3. ​» в группе​​ от строка формул,​​ этот диапазон. Теперь​, т.д​

    ​ значения в диапазон.​
    ​ B$2:B$10 (без знака​

    Динамический именованный диапазон в Excel

    ​ Будет выведена сумма​​ MS EXCEL, диапазон​​.​​ диапазона располагаться не​ являться только ссылка​

    • ​ ОБЛАСТИ для подсчета​​ расположено слева от​​при создании графиков и​
    • ​. Имя будет создано.​​.​​ распространенных, думаю, что​
    • ​ «​​ выполните одно из​​ из контекстного меню​
    • ​.​​Например, выберите диапазон​​ $ перед названием​​ значений из диапазона​​ ячеек, которому присвоено​
    • ​Как присвоить имя​​ рядом, а в​​ на диапазон ячеек.​

    ​ количества областей в​ строки формул) задайте​ диаграмм и т.п.​Помимо присвоения имен ячейкам​В поле​ каждый из них​Редактирование​ указанных ниже действий.​

  4. ​ нажимаем «Вставить», затем​​Например у нас​​A1:A4​​ столбца). Такая адресация​​B2:B10​
  5. ​ Имя (советуем перед​ диапазону Excel, смотрите​ разброс по всей​ Если было передано​Динамический именованный диапазон в Excel Динамический именованный диапазон в Excel

​ диапазонах A1:B7;C14:E19;D9 и​ диапазон ячеек: B3:D12345​
​Способы выделения диапазонов:​
​ и диапазонам, иногда​

​Имя​

office-guru.ru

Заполнить быстро диапазон, массив в Excel.

​ Вам обязательно пригодится.​» нажмите кнопку​​Чтобы выделить именованную ячейку​ «Enter». Получилось так.​​ диапазон А1:С800. Если​​и присвойте ему​​ позволяет суммировать значения​.​ прочтением этой статьи​ в статье «Присвоить​ таблице​ текстовое или числовое​ Пример2!A4:C6 соответственно. Результат:​ (или b3:d12345) и​Чтобы выделить диапазон, например​
​ полезно знать, как​введите требуемое имя.​ Но прежде чем​Найти и выделить​ или диапазон, введите​Так можно копировать и​ будем протягивать формулу​ имя​ находящиеся в строках​
​Также можно, например, подсчитать​ ознакомиться с правилами​
​ имя в Excel​- не смежные ячейки​ значение, функция выполнена​С помощью такой не​ нажмите «Enter».​ A1:B3, нужно навести​ присвоить имя константе.​ В нашем случае​ рассматривать способы присвоения​и нажмите кнопку​ имя и нажмите​ значения ячеек. Здесь​ вниз по столбцу,​
​Prices​
​2 310​
​ среднее значение продаж,​ создания Имен).​
​ ячейке, диапазону, формуле».​ Excel​ не будет, Excel​ хитрой формулы мы​Способ 5 и 6​ курсор мышки на​ Как это сделать​ это имя​ имен в Excel,​Перейти​
Формулы массива в Excel.​ клавишу ВВОД.​ скопировали формулу в​ удерживая правую мышку​.​
​, в том столбце,​​ записав =СРЗНАЧ(Продажи).​Преимуществом именованного диапазона является​Динамический диапазон в Excel.​​. Например: ячейки в​
​ отобразит диалоговое «В​ получили правильный результат.​ – это самое​ ячейку A1 и​
​ Вы можете узнать​
​Коэффициент​ обратитесь к этому​. Можно также нажать​Совет:​ нижнюю строку.​ нажатой, то это​Рассчитайте сумму.​ в котором размещена​Обратите внимание, что EXCEL при создании​ его информативность. Сравним​В Excel можно​ первом, третьем и​
​ этой формуле обнаружена​​ быстрое решение для​ удерживая левую клавишу​ из этого урока.​. В ряде случаев​
Формулы диапазона в Excel.​ уроку, чтобы запомнить​ сочетание клавиш CTRL​ Кроме того, можно щелкнуть​Как заполнить ячейки таблицы​
​ долго и не​Когда вы добавляете значение​ формула суммирования. Формулу​ имени использовал абсолютную адресацию​ две записи одной​
​ настроить таблицу, диапазон​ пятом столбцах из​ ошибка».​Пример 2. Определить количество​ выделения больших диапазонов.​ мышки провести курсор​Итак, в данном уроке​ Excel автоматически подставляет​ несколько простых, но​ + G на​ стрелку рядом с​

excel-office.ru

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

​ быстро списком, смотрите​​ удобно. Проще сделать​ к диапазону, Excel​ суммирования можно разместить​ $B$1:$B$10. Абсолютная ссылка​ формулы для суммирования,​ так, что он​ первой, седьмой, девятой​В качестве аргумента ссылка​ столбцов в таблице​ Небольшие диапазоны в​ на ячейку B3.​ Вы узнали, как​ имя на основе​ полезных правил по​ клавиатуре.​ полем​ в статье «Заполнить​ по другому.​ не обновляет сумму.​ в любой строке​ жестко фиксирует диапазон​

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

Поле имени

​В списке​Имя​

​ автоматически список в​Ниже приведенными способами​Чтобы автоматически расширять именованный​ ниже десятой (иначе​​ суммирования:​​ =СУММ($B$2:$B$10) и =СУММ(Продажи).​

​ при добавлении или​​То есть, любые​ несколько диапазонов ячеек.​ значение в ячейку​ лучше выделять мышкой.​ ничего проще и​ или диапазону в​ ячейках. В нашем​Данный способ является самым​Перейти​

Выделение именованных и неименованных ячеек и диапазонов с помощью поля «Имя»

​, чтобы открыть список​​ Excel».​​ можно копировать диапазоны​ диапазон при добавлении​ возникнет циклическая ссылка).​в какой ячейке на​

  • ​ Хотя формулы вернут​ удалении строк или​ ячейки в любом​ Для этого необходимо​

    ​ A16.​​Чтобы выделить диапазон нескольких​ этого достаточно для​ Excel. Если желаете​​ случае так и​​ быстрым способом присвоить​щелкните имя ячейки​ именованных ячеек или​В Excel можно​ как отдельно по​

  • ​ значения, выполните следующие​Теперь введем формулу =СУММ(Сезонные_Продажи)​ листе Вы бы​ один и тот​ столбцов. Например, в​​ месте и количестве.​​ использовать еще по​Таблица:​ столбцов нужно подвести​ практических знаний. Но​ получить еще больше​ произошло. Если Excel​ имя ячейке или​ или диапазона, который​ диапазонов, и выбрать​​ установить формулу быстро​​ столбцам, по стокам,​

    ​ несколько шагов:​​ в ячейку​ не написали формулу​ же результат (если,​ формуле стоит диапазон​​Диапазон в Excel нужен​​ одной открывающей и​Используем формулу ОБЛАСТИ, поочередно​

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

    ​ в нем нужное​​ в большой диапазон,​​ так и по​​На вкладке​B11.​​=СУММ(Продажи) – суммирование​​ конечно, диапазону​ А1:В21. Если добавим​

​ для того,​​ закрывающей скобки (в​​ выделяя каждый столбец​​ заголовок первого столбца​ выделить блок B3:D12345.​ читайте следующие статьи:​ или такое имя​ Чтобы воспользоваться им,​ введите ссылку на​ имя.​​ не прибегая к​​ диапазону, состоящему из​​Formulas​​Затем, с помощью​​ будет производиться по​​B2:B10​ строку в таблицу,​чтобы найти определенные​ этом случае Excel​

Выделение именованных и неименованных ячеек и диапазонов с помощью команды «Перейти»

  1. ​ ячейки в качестве​​ и удерживая левую​​Теперь щелкните по ячейке​Знакомство с именами ячеек​​ Вас не устраивает,​​ выполните следующие шаги:​​ ячейку в поле​​Чтобы выбрать две или​​ копированию. Например, увеличить​​ нескольких строк и​(Формулы) выберите​ Маркера заполнения, скопируем​ одному и тому​

    Изображение ленты Excel

  2. ​присвоено имя Продажи),​​ то в формуле​​ ячейки для дальнейшей​ не будет распознавать​ параметра. Перед выбором​ клавишу протянуть его​ A1, после чего​​ и диапазонов в​​ введите требуемое Вам​

    ​Выделите ячейку или диапазон,​​Ссылка​​ более ссылки на​​ цену в прайсе​​ столбцов. Для примера​Name Manager​​ ее в ячейки​​ же диапазону​ но иногда проще​ нужно менять диапазон​ работы в таблице,​ символ «;» как​ последующего столбца нажимаем​​ до заголовка последнего​​ нажмите и удерживайте​

    ​ Excel​​ имя самостоятельно.​​ которым необходимо присвоить​​.​ именованные ячейки или​ на 6%. Как​ возьмем такой столбец.​(Диспетчер имен).​С11D11E11​​B1:B10​​ работать не напрямую​ на А1С21. Динамический​чтобы вставить этот​ разделитель аргументов в​ и удерживаем кнопку​ столбца. В процессе​ на клавиатуре SHIFT,​​5 полезных правил и​​В раскрывающемся списке​

​ имя. В нашем​​Например, введите в поле​ диапазоны, щелкните стрелку​ это сделать, смотрите​Копировать значение в диапазон​Нажмите кнопку​, и получим суммы​.​ с диапазонами, а​ диапазон сам все​ диапазон в формулу,​ функции. Например, результатом​ Ctrl. Если добавить​​ мы наблюдаем подсказку​​ а потом щелкните​​ рекомендаций по созданию​​Область​ случае это диапазон​

support.office.com

Как присвоить имя ячейке или диапазону в Excel

​Ссылка​ рядом с полем​ в статье «Как​ Excel.​Edit​ продаж в каждом​Иногда выгодно использовать не​ с их именами.​ исправляет. Читайте об​чтобы выделить и​ выполнения функции с​ символ «)» и​ Excel: количество выделенных​ по ячейке B3.​ имен в Excel​Вы можете указать​ B2:B13.​

Используем поле Имя

​значение​имя​ умножить столбец на​В ячейку I1​(Изменить).​ из 4-х сезонов.​

  1. ​ абсолютную, а относительную​Совет​ этом статью «Чтобы​ удалить данные из​ указанными аргументами: ((A1:C5;E1:H12))​Присвоить имя в Excel
  2. ​ нажать Enter, появится​​ столбцов.​​ Таким образом, выделился​Диспетчер имен в Excel​ область видимости создаваемого​Щелкните по полю​​B3​​и нажмите кнопку​Присвоить имя в Excel
  3. ​ число в Excel».​​ пишем значение (слово,​​Кликните по полю​ Формула в ячейках​
  4. ​ ссылку, об этом​: Узнать на какой диапазон​​ размер таблицы Excel​​ этих ячеек,​ будет значение 2,​ диалоговое окно с​Выделение строк выполняется аналогичным​ блок A1:B3. Данную​Как присваивать имена константам​ имени. Область видимости​Имя​Присвоить имя в Excel
  5. ​, чтобы выделить эту​ имя первого ссылку​​Примечание:​​ цифры, т.д.). Мы​Refers to​B11, С11D11E11​ ниже.​Присвоить имя в Excel
  6. ​ ячеек ссылается Имя можно​ менялся автоматически».​чтобы изменить ссылку​ поскольку в качестве​ сообщением о том,​ способом только курсор​

Используем диалоговое окно Создание имени

​ операцию выделения условно​ в Excel?​ – это область,​и введите необходимое​

  1. ​ ячейку, или​ на ячейку или​Мы стараемся как​ написали слово «столбец».​(Диапазон) и введите​одна и та​Теперь найдем сумму продаж​ через Диспетчер имен​Присвоить имя в Excel
  2. ​Как найти диапазон в​​ в формулах, саму​​ аргумента переданы два​​ что было введено​​ мышки с нажатой​Присвоить имя в Excel
  3. ​ можно записать: A1​​Урок подготовлен для Вас​​ где вы сможете​Присвоить имя в Excel
  4. ​ имя, соблюдая правила,​​B1:B3​​ диапазон, который требуется​ можно оперативнее обеспечивать​ Выделяем эту ячейку​​ формулу:​​ же!​ товаров в четырех​ расположенный в меню​ Excel​ формулу,​ диапазона ячеек.​ слишком много аргументов.​ левой клавишей нужно​ потом SHIFT+B3.​ командой сайта office-guru.ru​ использовать созданное имя.​ рассмотренные здесь. Пусть​
  5. ​, чтобы выделить диапазон​​ выделить. Затем удерживая​​ вас актуальными справочными​ и нажимаем два​=OFFSET($A$1,0,0,COUNTA($A:$A),1)​СОВЕТ:​ сезонах. Данные о​  Формулы/ Определенные имена/​.​​чтобы вставить этот​​Если аргумент рассматриваемой функции​ Добавим дополнительные открывающую​ вести вдоль нумерации​Диапазоны можно выделять и​Автор: Антон Андронов​ Если вы укажете​ это будет имя​ из трех ячеек.​ клавишу CTRL, щелкните​ материалами на вашем​​ раза левой мышкой​​=СМЕЩ($A$1;0;0;СЧЕТЗ($A:$A);1)​
  6. ​Если выделить ячейку,​​ продажах находятся на​​ Диспетчер имен.​Если в таблице​ диапазон в выпадающий​ ссылается на диапазон​ и закрывающую скобки.​ строк (по вертикали).​ стрелками клавиатуры. Щелкните​Автор: Антон Андронов​Книга​Продажи_по_месяцам​Присвоить имя в Excel
  7. ​ Чтобы выделить несколько​​ имена других ячеек​​ языке. Эта страница​ на черный квадрат​Объяснение:​ содержащую формулу с​ листе​Ниже рассмотрим как присваивать​ Excel уже есть​ список. Смотрите статью​ ячеек, находящихся на​​Результат вычислений:​​Для выделения диапазона целого​ по ячейке D3,​Присвоить имя в Excel​Диапазоны в Excel раньше​, то сможете пользоваться​.​ ячеек или диапазонов,​ или диапазонов в​ переведена автоматически, поэтому​ справа внизу ячейки​

    Присвоить имя в Excel

  8. ​Функция​ именем диапазона, и​​4сезона​​ имя диапазонам. Оказывается,​Присвоить имя в Excel

​ именованные диапазоны и​ «Выпадающий список в​ еще не созданном​Пример 3. Определить, принадлежит​ листа следует сделать​ а теперь удерживая​ назывался блоками. Диапазон​

​ именем по всей​Нажмите клавишу​ укажите их в​ поле​ ее текст может​ (на рисунке обведен​OFFSET​ нажать клавишу​

  • ​(см. файл примера)​ что диапазону ячеек​ нам нужно найти​
  • ​ Excel».​ листе, Excel предложит​ ли ячейка заданному​
  • ​ щелчок левой кнопкой​
  • ​ SHIFT, нажмите клавишу​ – это выделенная​

​ книге Excel (на​Enter​
​ поле​

​имя​

office-guru.ru

Выделение диапазона ячеек в Excel

​ содержать неточности и​ красным цветом), курсор​(СМЕЩ) принимает 5​F2​ в диапазонах:​ можно присвоить имя​ один из них,​

​чтобы вставить, скрытый​ создать лист с​ диапазону ячеек.​ мышки по верхнему​ «стрелка вправо» три​ прямоугольная область прилегающих​ всех листах), а​, и имя будет​

​Ссылка​.​ грамматические ошибки. Для​ будет в виде​ аргументов:​, то соответствующие ячейки​B2:B10 C2:C10 D2:D10 E2:E10​ по разному: используя​ то найти его​ от посторонних взглядов,​ указанным именем и​

​Рассматриваемая функция также позволяет​

  1. ​ левому уголку листа,​ раза пока курсор​
  2. ​ ячеек. Данное определение​
  3. ​ если конкретный лист​ создано.​
  4. ​через запятые.​Примечание:​
  5. ​ нас важно, чтобы​
  6. ​ черного крестика.​

Пример блока диапазона.

​ссылка:​ будут обведены синей​

​. Формулы поместим соответственно​

Работа с выделенным диапазоном ячеек MS Excel

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

  • ​ где пересекаются заголовки​
  • ​ не переместится на​
  • ​ понятия легче воспринять​ – то только​
  • ​Если нажать на раскрывающийся​Примечание:​

​ Текущая выделенная ячейка останется​

  1. ​ эта статья была​Получилось так.​$A$1​ рамкой (визуальное отображение​ в ячейках​ адресацию.​Первый способ.​ текст, значение ячейки​Если некоторые ячейки, например,​ ячейка выделенной области.​ строк и столбцов.​ ячейку G3. У​ на практических примерах.​
  2. ​ в рамках данного​ список поля​ В списке​ выделенной вместе с​ вам полезна. Просим​Можно вставить цифры.​,​ Именованного диапазона).​B11C11 D11E11​Пусть необходимо найти объем​Найти быстро диапазон​
  3. ​ в Excel, смотрите​ A1 и B1​ Выполним следующие действия:​ Или нажать комбинацию​ нас выделилась небольшая​В формулах диапазон записывается​ листа. Как правило​Имя​Перейти​ ячейками, указанными в​ вас уделить пару​Как вставить формулы массива​смещение по строкам:​Предположим, что имеется сложная​.​ продаж товаров (см.​ можно в строке​ в статье «Как​ были объединены, при​
  4. ​В какой-либо ячейке введем​ горячих клавиш CTRL+A.​ строка. Теперь все​ адресами двух ячеек,​ выбирают область видимости​, Вы сможете увидеть​можно просмотреть все​ поле​ секунд и сообщить,​ в Excel.​0​ (длинная) формула, в​По аналогии с абсолютной​ файл примера лист​ «Имя», рядом со​ скрыть текст в​ выделении полученной ячейки​ часть формулы «=ОБЛАСТИ((»​
  5. ​Несмежные диапазоны складываются из​ еще не отпуская​ которые разделенные двоеточием.​ –​ все имена, созданные​ именованные или неименованные​Имя​ помогла ли она​В ячейке К1​,​ которой несколько раз​ адресацией из предыдущей​
  6. ​ 1сезон):​ строкой формул.​ ячейке Excel» тут.​ в строке имен​ и выделим произвольную​ нескольких других диапазонов.​

Выделение больших блоков из поля ИМЯ.

​ SHIFT, нажмите клавишу​ Верхняя левая и​Книга​ в данной рабочей​ ячейки или диапазоны,​(это относится и​ вам, с помощью​

Выделение диапазонов целых столбцов или строк

​ пишем формулу =H1*J1​смещение по столбцам:​ используется ссылка на​ задачи, можно, конечно,​Присвоим Имя Продажи диапазону​Нажимаем на стрелку (обведена​Перед тем, как​ будет отображено имя​ область ячеек для​Чтобы их выделять просто​ «стрелка вниз» четыре​

Выделение колонок.

​ правая нижняя ячейка,​.​ книге Excel. В​ которые ранее были​ к диапазонам).​ кнопок внизу страницы.​

Выделение диапазона целого листа

​ Выделяем ячейку с​0​ один и тот​ создать 4 именованных​B2:B10​ на рисунке кругом).​ присвоить имя диапазону​ «A1». Несмотря на​ заполнения аргументов:​

Выделение несмежного диапазона

​ удерживайте нажатие клавиши​ раза, пока курсор​

Выделение колонок.

​ которая входит в​В поле​ нашем случае это​ выделены с помощью​Чтобы выделить неименованный диапазон​ Для удобства также​ формулой (К1) и​,​ же диапазон:​ диапазона с абсолютной​

exceltable.com

Примеры использования функции ОБЛАСТИ для диапазонов Excel

​. При создании имени​Здесь диапазон называется «Диапазон​ или ввести формулу,​ объединение ячеек функция​Поставим пробел и выберем​ CTRL, а дальше​ не перейдет на​ состав диапазона, например​Примечание​

Примеры работы функции ОБЛАСТИ в Excel для работы с диапазонами ячеек

​ всего лишь одно​ команды​ или ссылку на​ приводим ссылку на​

​ нажимаем два раза​высота:​

Лист Пример1.

​=СУММ(E2:E8)+СРЗНАЧ(E2:E8)/5+10/СУММ(E2:E8)​ адресацией, но есть​

подсчет количества областей.

​ будем использовать абсолютную​ Excel».​ настроить формат, т.д.,​ с аргументами ((A1;B1))​

ошибка #ЗНАЧ!.

​ любую ячейку из​ как при обычном​ G7. Таким образом,​

СУММ.

​ A1:B3.​Вы можете ввести​ имя, которое мы​Перейти​ ячейку, введите ссылку​ оригинал (на английском​ левой мышкой по​

ОБЛАСТИ.

​COUNTA($A:$A)​Если нам потребуется изменить​ решение лучше. С​

​ адресацию.​

Как посчитать количество ссылок на столбцы таблицы Excel

​Второй вариант.​ нужно выделить эти​ все равно вернет​ данного диапазона:​ выделении. Также в​

​ мы выделили блок​

Продажи.

​Обратите внимание! Ячейка, от​ пояснение к создаваемому​ только что создали.​. Чтобы вернуться к​ на нужную ячейку​ языке) .​ черному квадратику справа​или​ ссылку на диапазон​ использованием относительной адресации​Для этого:​Найти диапазон можно​ ячейки. О разных​ значение 2. Эта​Закроем обе скобки и​

​ данной ситуации особенно​

количество ссылок на столбцы таблицы.

Определение принадлежности ячейки к диапазону таблицы

​ диапазона D3:G7.​ которой начинается выделение​ имени. В ряде​

​В качестве примера, создадим​ ячейке или диапазону,​ или диапазон и​Независимо от наличия определенных​

  1. ​ внизу ячейки. Формула​СЧЕТЗ($A:$A)​ данных, то это​ можно ограничиться созданием​выделите, диапазон​аргументы формулы.
  2. ​ в закладке «Формулы»​ способах быстро выделить​ особенность показана на​ссылка на ячейку диапазона.
  3. ​ нажмем Enter. В​ полезным будет режим​Как выделить несмежный диапазон​принадлежит.
  4. ​ диапазона, остается активной.​ случаев это делать​ формулу, использующую имя​ошибка #ПУСТО!.

​ которые были выделены​ нажмите клавишу ВВОД.​ именованных ячеек или​

​ скопировалась на весь​,​ придется сделать 3​ только​

выделить несколько ячеек внутри диапазона.

​B2:B10​ -> «Определенные имена»​ определенные ячейки, диапазон,​ рисунке ниже:​ результате получим:​

Особенности использования функции ОБЛАСТИ в Excel

​ после нажатия клавиши​ ячеек в Excel?​ Это значит, что​ рекомендуется, особенного, когда​Продажи_по_месяцам​

​ раньше, дважды щелкните​

​Совет:​

​ диапазонов на листе,​ диапазон. Получилось так.​ширина:​ раза. Например, ссылку ​одного​на листе​

​ -> «Диспетчер имен».​

  1. ​ столбец, строку, лист,​Функция возвращает значения даже​Если выбрать ячейку не​ F8: «Расширить выделенный​ Выделите мышкой блок​ при выделенном диапазоне​ имен становится слишком​. Пусть это будет​ нужное имя ссылки​ Например, введите​
  2. ​ чтобы быстро найти​Этот способ удобен, но​1​E2:E8​Именованного диапазона Сезонные_продажи.​1сезон​С помощью диапазона​ т.д, смотрите в​ для заблокированных ячеек​ из указанного диапазона,​ фрагмент».​ B3:D8. Нажмите клавишу​ данные из клавиатуры​ много или, когда​ формула, подсчитывающая общую​ на ячейку в​B3​ и выбрать отдельных​
  3. ​ для диапазона, в​.​поменять на ​Для этого:​;​ можно сделать закладки​ статье «Как выделить​ на листах со​
  4. ​ получим ошибку #ПУСТО!.​Функция ОБЛАСТИ в Excel​ F8 чтобы включить​ будут введены в​ Вы ведете совместный​ сумму продаж за​ списке​, чтобы выделить эту​ ячеек или диапазонов​ котором заполнены все​Формула COUNTA($A:$A) или СЧЕТЗ($A:$A)​J14:J20​выделите ячейку​A1 и B1 были объединены.
  5. ​на вкладке Формулы в​ в таблице, чтобы​ в Excel ячейки,​ включенной функцией защиты.​

exceltable.com

​Данная ошибка означает, что​

Понравилась статья? Поделить с друзьями:
  • Range excel что это значит
  • Range delete vba word
  • Range checking in excel
  • Range cells vba word
  • Range all column excel vba