Как вставить range в excel

Присвоение диапазона ячеек объектной переменной в VBA Excel. Адресация ячеек в переменной диапазона и работа с ними. Определение размера диапазона. Примеры.

Присвоение диапазона ячеек переменной

Чтобы переменной присвоить диапазон ячеек, она должна быть объявлена как Variant, Object или Range:

Dim myRange1 As Variant

Dim myRange2 As Object

Dim myRange3 As Range

Чтобы было понятнее, для чего переменная создана, объявляйте ее как Range.

Присваивается переменной диапазон ячеек с помощью оператора Set:

Set myRange1 = Range(«B5:E16»)

Set myRange2 = Range(Cells(3, 4), Cells(26, 18))

Set myRange3 = Selection

В выражении Range(Cells(3, 4), Cells(26, 18)) вместо чисел можно использовать переменные.

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

Адресация ячеек в диапазоне

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

Индексация ячеек в присвоенном диапазоне осуществляется слева направо и сверху вниз, например, для диапазона размерностью 5х5:

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

Индексация строк и столбцов начинается с левой верхней ячейки. В диапазоне этого примера содержится 5 строк и 5 столбцов. На пересечении 2 строки и 4 столбца находится ячейка с индексом 9. Обратиться к ней можно так:

‘обращение по индексам строки и столбца

myRange.Cells(2, 4)

‘обращение по индексу ячейки

myRange.Cells(9)

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

обращение к первой строке присвоенного диапазона размерностью 5х5:

myRange.Range(«A1:E1»)

‘или

myRange.Range(Cells(1, 1), Cells(1, 5))

и обращение к первому столбцу присвоенного диапазона размерностью 5х5:

myRange.Range(«A1:A5»)

‘или

myRange.Range(Cells(1, 1), Cells(5, 1))

Работа с диапазоном в переменной

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

MsgBox myRange.Cells(6)

MsgBox myRange.Cells(6).Value

равнозначны. В обоих случаях информационное сообщение MsgBox выведет значение ячейки с индексом 6.

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

Преимущество работы с диапазоном ячеек в объектной переменной заключается в том, что все изменения, внесенные в переменной, применяются к диапазону (который присвоен переменной) на рабочем листе.

Пример 1 — работа со значениями

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

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

Sub Test1()

‘Объявляем переменную

Dim myRange As Range

‘Присваиваем диапазон ячеек

Set myRange = Range(«C6:E8»)

‘Заполняем первую строку

‘Присваиваем значение первой ячейке

myRange.Cells(1, 1) = 5

‘Присваиваем значение второй ячейке

myRange.Cells(1, 2) = 10

‘Присваиваем третьей ячейке

‘значение выражения

myRange.Cells(1, 3) = myRange.Cells(1, 1) _

* myRange.Cells(1, 2)

‘Заполняем вторую строку

myRange.Cells(2, 1) = 20

myRange.Cells(2, 2) = 25

myRange.Cells(2, 3) = myRange.Cells(2, 1) _

+ myRange.Cells(2, 2)

‘Заполняем третью строку

myRange.Cells(3, 1) = «VBA»

myRange.Cells(3, 2) = «Excel»

myRange.Cells(3, 3) = myRange.Cells(3, 1) _

& » « & myRange.Cells(3, 2)

End Sub

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

Пример 2 — работа с форматами

Продолжаем работу с тем же диапазоном рабочего листа «C6:E8»:

Sub Test2()

‘Объявляем переменную

Dim myRange As Range

‘Присваиваем диапазон ячеек

Set myRange = Range(«C6:E8»)

‘Первую строку выделяем жирным шрифтом

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

‘Вторую строку выделяем фоном

myRange.Range(«A2:C2»).Interior.Color = vbGreen

‘Третьей строке добавляем границы

myRange.Range(«A3:C3»).Borders.LineStyle = True

End Sub

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

Пример 3 — копирование и вставка диапазона из переменной

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

Скопировать и вставить диапазон полностью со значениями и форматами можно при помощи метода Copy, указав место вставки (ячейку) на рабочем листе.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Sub Test3()

‘Объявляем переменную

Dim myRange As Range

‘Присваиваем диапазон ячеек

Set myRange = Range(«C6:E8»)

‘Присваиваем ячейкам рабочего листа

‘значения ячеек переменной диапазона

Range(«A1:C3») = myRange.Value

MsgBox «Пауза»

‘Копирование диапазона переменной

‘и вставка его на рабочий лист

‘с указанием начальной ячейки

myRange.Copy Range(«E1»)

MsgBox «Пауза»

‘Копируем и вставляем часть

‘диапазона из переменной

myRange.Range(«A2:C2»).Copy Range(«E11»)

End Sub

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

Размер диапазона в переменной

При получении диапазона с помощью метода Application.InputBox и присвоении его переменной диапазона, бывает полезно узнать его размерность. Это можно сделать следующим образом:

Sub Test4()

‘Объявляем переменную

Dim myRange As Range

‘Присваиваем диапазон ячеек

Set myRange = Application.InputBox(«Выберите диапазон ячеек:», , , , , , , 8)

‘Узнаем количество строк и столбцов

MsgBox «Количество строк = « & myRange.Rows.Count _

& vbNewLine & «Количество столбцов = « & myRange.Columns.Count

End Sub

Запустите процедуру, выберите на рабочем листе Excel любой диапазон и нажмите кнопку «OK». Информационное сообщение выведет количество строк и столбцов в диапазоне, присвоенном переменной myRange.

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

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 позволяют вам получить доступ к диапазону ячеек этих типов

Содержание

  • Манипуляции с именованными областями
    • Создание именованного диапазона
    • Операции с именованными диапазонами
    • Управление именованными диапазонами
  • Вопросы и ответы

Именованный диапазон в Microsoft Excel

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

Манипуляции с именованными областями

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

Существуют обязательные требования к наименованию группы ячеек:

  • В нём не должно быть пробелов;
  • Оно обязательно должно начинаться с буквы;
  • Его длина не должна быть больше 255 символов;
  • Оно не должно быть представлено координатами вида A1 или R1C1;
  • В книге не должно быть одинаковых имен.

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

Имя диапазона строке имен в Microsoft Excel

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

Имя диапазону не присвоено в Microsoft Excel

Создание именованного диапазона

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

  1. Самый быстрый и простой вариант присвоения названия массиву – это записать его в поле имен после выделения соответствующей области. Итак, выделяем массив и вводим в поле то название, которое считаем нужным. Желательно, чтобы оно легко запоминалось и отвечало содержимому ячеек. И, безусловно, необходимо, чтобы оно отвечало обязательным требованиям, которые были изложены выше.
  2. Присвоение имени диапазону через поле имен в Microsoft Excel

  3. Для того, чтобы программа внесла данное название в собственный реестр и запомнила его, жмем по клавише Enter. Название будет присвоено выделенной области ячеек.

Наименование диапазону через поле имен присвоено в Microsoft Excel

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

  1. Выделяем массив, над которым требуется выполнить операцию. Клацаем по выделению правой кнопкой мыши. В открывшемся списке останавливаем выбор на варианте «Присвоить имя…».
  2. Переход к присвоению имени диапазону ячеек через контекстное меню в Microsoft Excel

  3. Открывается окошко создания названия. В область «Имя» следует вбить наименование в соответствии с озвученными выше условиями. В области «Диапазон» отображается адрес выделенного массива. Если вы провели выделение верно, то вносить изменения в эту область не нужно. Жмем по кнопке «OK».
  4. Окно создания имени в Microsoft Excel

  5. Как можно видеть в поле имён, название области присвоено успешно.

Наименование диапазону через контекстное меню присвоено в Microsoft Excel

Lumpics.ru

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

  1. Выделяем область ячеек, которую требуется преобразовать в именованную. Передвигаемся во вкладку «Формулы». В группе «Определенные имена» производим клик по значку «Присвоить имя».
  2. Переход к присвоению имени диапазону через кнопку на ленте в Microsoft Excel

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

Окно создания имени в программе Microsoft Excel

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

  1. Выделяем массив. На вкладке «Формулы», клацаем по крупному значку «Диспетчер имен», расположенному всё в той же группе «Определенные имена». Или же можно вместо этого применить нажатие сочетания клавиш Ctrl+F3.
  2. Переход в Диспетчер имен в Microsoft Excel

  3. Активируется окно Диспетчера имён. В нем следует нажать на кнопку «Создать…» в верхнем левом углу.
  4. Переход к созданию имени в Диспетчере имён в Microsoft Excel

  5. Затем запускается уже знакомое окошко создания файлов, где нужно провести те манипуляции, о которых шёл разговор выше. То имя, которое будет присвоено массиву, отобразится в Диспетчере. Его можно будет закрыть, нажав на стандартную кнопку закрытия в правом верхнем углу.

Закрытие окна Диспетчера имён в Microsoft Excel

Урок: Как присвоить название ячейке в Экселе

Операции с именованными диапазонами

Как уже говорилось выше, именованные массивы могут использоваться во время выполнения различных операций в Экселе: формулы, функции, специальные инструменты. Давайте на конкретном примере рассмотрим, как это происходит.

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

  1. Прежде всего, на листе со списком присваиваем диапазону наименование любым из тех способов, о которых шла речь выше. В итоге, при выделении перечня в поле имён у нас должно отображаться наименование данного массива. Пусть это будет наименование «Модели».
  2. Наименование диапазону моделей присвоено в Microsoft Excel

  3. После этого перемещаемся на лист, где находится таблица, в которой нам предстоит создать выпадающий список. Выделяем область в таблице, в которую планируем внедрить выпадающий список. Перемещаемся во вкладку «Данные» и щелкаем по кнопке «Проверка данных» в блоке инструментов «Работа с данными» на ленте.
  4. Переход в окно проверки данных в Microsoft Excel

  5. В запустившемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» выбираем значение «Список». В поле «Источник» в обычном случае нужно либо вручную вписать все элементы будущего выпадающего списка, либо дать ссылку на их перечень, если он расположен в документе. Это не очень удобно, особенно, если перечень располагается на другом листе. Но в нашем случае все намного проще, так как мы соответствующему массиву присвоили наименование. Поэтому просто ставим знак «равно» и записываем это название в поле. Получается следующее выражение:

    =Модели

    Жмем по «OK».

  6. Окно проверки вводимых значений в Microsoft Excel

  7. Теперь при наведении курсора на любую ячейку диапазона, к которой мы применили проверку данных, справа от неё появляется треугольник. При нажатии на этот треугольник открывается список вводимых данных, который подтягивается из перечня на другом листе.
  8. Выпадающий список в Microsoft Excel

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

Значение из выпадающего списка выбрано в Microsoft Excel

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

Итак, мы имеем таблицу, в которой помесячно расписана выручка пяти филиалов предприятия. Нам нужно узнать общую выручку по Филиалу 1, Филиалу 3 и Филиалу 5 за весь период, указанный в таблице.

Таблица выручки по филиалам предприятия в Microsoft Excel

  1. Прежде всего, каждой строке соответствующего филиала в таблице присвоим название. Для Филиала 1 выделяем область с ячейками, в которых содержатся данные о выручке по нему за 3 месяца. После выделения в поле имен пишем наименование «Филиал_1» (не забываем, что название не может содержать пробел) и щелкаем по клавише Enter. Наименование соответствующей области будет присвоено. При желании можно использовать любой другой вариант присвоения наименования, о котором шел разговор выше.
  2. Имя диапазону Филиал 1 присвоено в Microsoft Excel

  3. Таким же образом, выделяя соответствующие области, даем названия строкам и других филиалов: «Филиал_2», «Филиал_3», «Филиал_4», «Филиал_5».
  4. Имя всем диапазонам таблицы пррисвоено в Microsoft Excel

  5. Выделяем элемент листа, в который будет выводиться итог суммирования. Клацаем по иконке «Вставить функцию».
  6. Переход в Мастер функций в Microsoft Excel

  7. Инициируется запуск Мастера функций. Производим перемещение в блок «Математические». Останавливаем выбор из перечня доступных операторов на наименовании «СУММ».
  8. Переход в окно аргументов функции СУММ в Microsoft Excel

  9. Происходит активация окошка аргументов оператора СУММ. Данная функция, входящая в группу математических операторов, специально предназначена для суммирования числовых значений. Синтаксис представлен следующей формулой:

    =СУММ(число1;число2;…)

    Как нетрудно понять, оператор суммирует все аргументы группы «Число». В виде аргументов могут применяться, как непосредственно сами числовые значения, так и ссылки на ячейки или диапазоны, где они расположены. В случае применения массивов в качестве аргументов используется сумма значений, которая содержится в их элементах, подсчитанная в фоновом режиме. Можно сказать, что мы «перескакиваем», через действие. Именно для решения нашей задачи и будет использоваться суммирование диапазонов.

    Всего оператор СУММ может насчитывать от одного до 255 аргументов. Но в нашем случае понадобится всего три аргумента, так как мы будет производить сложение трёх диапазонов: «Филиал_1», «Филиал_3» и «Филиал_5».

    Итак, устанавливаем курсор в поле «Число1». Так как мы дали названия диапазонам, которые требуется сложить, то не нужно ни вписывать координаты в поле, ни выделять соответствующие области на листе. Достаточно просто указать название массива, который подлежит сложению: «Филиал_1». В поля «Число2» и «Число3» соответственно вносим запись «Филиал_3» и «Филиал_5». После того, как вышеуказанные манипуляции были сделаны, клацаем по «OK».

  10. Окно аргументов функции СУММ в Microsoft Excel

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

Результат вычисления функции СУММ в Microsoft Excel

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

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

Урок: Как посчитать сумму в Майкрософт Эксель

Управление именованными диапазонами

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

  1. Чтобы перейти в Диспетчер, перемещаемся во вкладку «Формулы». Там следует кликнуть по иконке, которая так и называется «Диспетчер имен». Указанная иконка располагается в группе «Определенные имена».
  2. Переход в Диспетчер имен в программе Microsoft Excel

  3. После перехода в Диспетчер для того, чтобы произвести необходимую манипуляцию с диапазоном, требуется найти его название в списке. Если перечень элементов не очень обширный, то сделать это довольно просто. Но если в текущей книге располагается несколько десятков именованных массивов или больше, то для облегчения задачи есть смысл воспользоваться фильтром. Клацаем по кнопке «Фильтр», размещенной в правом верхнем углу окна. Фильтрацию можно выполнять по следующим направлениям, выбрав соответствующий пункт открывшегося меню:
    • Имена на листе;
    • в книге;
    • с ошибками;
    • без ошибок;
    • Определенные имена;
    • Имена таблиц.

    Для того, чтобы вернутся к полному перечню наименований, достаточно выбрать вариант «Очистить фильтр».

  4. Фильтрация в Диспетчере имён в Microsoft Excel

  5. Для изменения границ, названия или других свойств именованного диапазона следует выделить нужный элемент в Диспетчере и нажать на кнопку «Изменить…».
  6. Переход к изменению именованного диапазона через Диспетчер имен в Microsoft Excel

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

    В поле «Имя» можно сменить наименование области. В поле «Примечание» можно добавить или отредактировать существующее примечание. В поле «Диапазон» можно поменять адрес именованного массива. Существует возможность сделать, как применив ручное введение требуемых координат, так и установив курсор в поле и выделив соответствующий массив ячеек на листе. Его адрес тут же отобразится в поле. Единственное поле, значения в котором невозможно отредактировать – «Область».

    После того, как редактирование данных окончено, жмем на кнопку «OK».

Окно изменения имени именнованного диапазона в Microsoft Excel

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

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

  1. Чтобы провести процедуру удаления, выделяем нужный элемент из перечня и жмем на кнопку «Удалить».
  2. Удаление именованного диапазона через Диспетчер имен в Microsoft Excel

  3. После этого запускается диалоговое окно, которое просит подтвердить свою решимость удалить выбранный элемент. Это сделано во избежание того, чтобы пользователь по ошибке не выполнил данную процедуру. Итак, если вы уверены в необходимости удаления, то требуется щелкнуть по кнопке «OK» в окошке подтверждения. В обратном случае жмите по кнопке «Отмена».
  4. Подтверждение удаления имени в Microsoft Excel

  5. Как видим, выбранный элемент был удален из перечня Диспетчера. Это означает, что массив, к которому он был прикреплен, утратил наименование. Теперь он будет идентифицироваться только по координатам. После того, как все манипуляции в Диспетчере завершены, клацаем по кнопке «Закрыть», чтобы завершить работу в окне.

Закрытие окна Диспетчера имен в Microsoft Excel

Применение именованного диапазона способно облегчить работу с формулами, функциями и другими инструментами 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

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

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

Что такое диапазон в 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

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

Понравилась статья? Поделить с друзьями:
  • Как вставить qr код в документ word бесплатно
  • Как вставить qr код в документ excel
  • Как вставить project в word
  • Как вставить print screen в word
  • Как вставить png в word без фона