Присвоение диапазона ячеек объектной переменной в 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
- Свойство Cells рабочего листа
- Использование Cells и Range вместе
- Свойство Offset диапазона
- Использование диапазона CurrentRegion
- Использование Rows и Columns в качестве Ranges
- Использование Range вместо Worksheet
- Чтение значений из одной ячейки в другую
- Использование метода Range.Resize
- Чтение Value в переменные
- Как копировать и вставлять ячейки
- Чтение диапазона ячеек в массив
- Пройти через все клетки в диапазоне
- Форматирование ячеек
- Основные моменты
Краткое руководство по диапазонам и клеткам
Функция | Принимает | Возвращает | Пример | Вид |
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, начинается и заканчивается ячейками.
Вы делаете три основных вещи с помощью ячеек:
- Читаете из ячейки.
- Пишите в ячейку.
- Изменяете формат ячейки.
В 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, вы должны сначала указать рабочую книгу и рабочий лист, которому она принадлежит.
В оставшейся части этой статьи я буду использовать кодовое имя для ссылки на лист.
Следующий код показывает приведенный выше пример с использованием кодового имени рабочего листа, т.е. Лист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 . Есть два отличия:
- Cells возвращают диапазон только одной ячейки.
- 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).
Свойство Offset диапазона
У диапазона есть свойство, которое называется Offset. Термин «Offset» относится к отсчету от исходной позиции. Он часто используется в определенных областях программирования. С помощью свойства «Offset» вы можете получить диапазон ячеек того же размера и на определенном расстоянии от текущего диапазона. Это полезно, потому что иногда вы можете выбрать диапазон на основе определенного условия. Например, на скриншоте ниже есть столбец для каждого дня недели. Учитывая номер дня (т.е. понедельник = 1, вторник = 2 и т.д.). Нам нужно записать значение в правильный столбец.
Сначала мы попытаемся сделать это без использования 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.
Строка или столбец пустых ячеек означает конец 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
Основные моменты
Ниже приводится краткое изложение основных моментов
- Range возвращает диапазон ячеек
- Cells возвращают только одну клетку
- Вы можете читать из одной ячейки в другую
- Вы можете читать из диапазона ячеек в другой диапазон ячеек.
- Вы можете читать значения из ячеек в переменные и наоборот.
- Вы можете читать значения из диапазонов в массивы и наоборот
- Вы можете использовать цикл For Each или For, чтобы проходить через каждую ячейку в диапазоне.
- Свойства Rows и Columns позволяют вам получить доступ к диапазону ячеек этих типов
Содержание
- Манипуляции с именованными областями
- Создание именованного диапазона
- Операции с именованными диапазонами
- Управление именованными диапазонами
- Вопросы и ответы
Одним из инструментов, который упрощает работу с формулами и позволяет оптимизировать работу с массивами данных, является присвоение этим массивам наименования. Таким образом, если вы хотите сослаться на диапазон однородных данных, то не нужно будет записывать сложную ссылку, а достаточно указать простое название, которым вы сами ранее обозначили определенный массив. Давайте выясним основные нюансы и преимущества работы с именованными диапазонами.
Манипуляции с именованными областями
Именованный диапазон — это область ячеек, которой пользователем присвоено определенное название. При этом данное наименование расценивается Excel, как адрес указанной области. Оно может использоваться в составе формул и аргументов функций, а также в специализированных инструментах Excel, например, «Проверка вводимых значений».
Существуют обязательные требования к наименованию группы ячеек:
- В нём не должно быть пробелов;
- Оно обязательно должно начинаться с буквы;
- Его длина не должна быть больше 255 символов;
- Оно не должно быть представлено координатами вида A1 или R1C1;
- В книге не должно быть одинаковых имен.
Наименование области ячеек можно увидеть при её выделении в поле имен, которое размещено слева от строки формул.
В случае, если наименование диапазону не присвоено, то в вышеуказанном поле при его выделении отображается адрес левой верхней ячейки массива.
Создание именованного диапазона
Прежде всего, узнаем, как создать именованный диапазон в Экселе.
- Самый быстрый и простой вариант присвоения названия массиву – это записать его в поле имен после выделения соответствующей области. Итак, выделяем массив и вводим в поле то название, которое считаем нужным. Желательно, чтобы оно легко запоминалось и отвечало содержимому ячеек. И, безусловно, необходимо, чтобы оно отвечало обязательным требованиям, которые были изложены выше.
- Для того, чтобы программа внесла данное название в собственный реестр и запомнила его, жмем по клавише Enter. Название будет присвоено выделенной области ячеек.
Выше был назван самый быстрый вариант наделения наименованием массива, но он далеко не единственный. Эту процедуру можно произвести также через контекстное меню
- Выделяем массив, над которым требуется выполнить операцию. Клацаем по выделению правой кнопкой мыши. В открывшемся списке останавливаем выбор на варианте «Присвоить имя…».
- Открывается окошко создания названия. В область «Имя» следует вбить наименование в соответствии с озвученными выше условиями. В области «Диапазон» отображается адрес выделенного массива. Если вы провели выделение верно, то вносить изменения в эту область не нужно. Жмем по кнопке «OK».
- Как можно видеть в поле имён, название области присвоено успешно.
Ещё один вариант выполнения указанной задачи предусматривает использование инструментов на ленте.
- Выделяем область ячеек, которую требуется преобразовать в именованную. Передвигаемся во вкладку «Формулы». В группе «Определенные имена» производим клик по значку «Присвоить имя».
- Открывается точно такое же окно присвоения названия, как и при использовании предыдущего варианта. Все дальнейшие операции выполняются абсолютно аналогично.
Последний вариант присвоения названия области ячеек, который мы рассмотрим, это использование Диспетчера имен.
- Выделяем массив. На вкладке «Формулы», клацаем по крупному значку «Диспетчер имен», расположенному всё в той же группе «Определенные имена». Или же можно вместо этого применить нажатие сочетания клавиш Ctrl+F3.
- Активируется окно Диспетчера имён. В нем следует нажать на кнопку «Создать…» в верхнем левом углу.
- Затем запускается уже знакомое окошко создания файлов, где нужно провести те манипуляции, о которых шёл разговор выше. То имя, которое будет присвоено массиву, отобразится в Диспетчере. Его можно будет закрыть, нажав на стандартную кнопку закрытия в правом верхнем углу.
Урок: Как присвоить название ячейке в Экселе
Операции с именованными диапазонами
Как уже говорилось выше, именованные массивы могут использоваться во время выполнения различных операций в Экселе: формулы, функции, специальные инструменты. Давайте на конкретном примере рассмотрим, как это происходит.
На одном листе у нас перечень моделей компьютерной техники. У нас стоит задача на втором листе в таблице сделать выпадающий список из данного перечня.
- Прежде всего, на листе со списком присваиваем диапазону наименование любым из тех способов, о которых шла речь выше. В итоге, при выделении перечня в поле имён у нас должно отображаться наименование данного массива. Пусть это будет наименование «Модели».
- После этого перемещаемся на лист, где находится таблица, в которой нам предстоит создать выпадающий список. Выделяем область в таблице, в которую планируем внедрить выпадающий список. Перемещаемся во вкладку «Данные» и щелкаем по кнопке «Проверка данных» в блоке инструментов «Работа с данными» на ленте.
- В запустившемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» выбираем значение «Список». В поле «Источник» в обычном случае нужно либо вручную вписать все элементы будущего выпадающего списка, либо дать ссылку на их перечень, если он расположен в документе. Это не очень удобно, особенно, если перечень располагается на другом листе. Но в нашем случае все намного проще, так как мы соответствующему массиву присвоили наименование. Поэтому просто ставим знак «равно» и записываем это название в поле. Получается следующее выражение:
=Модели
Жмем по «OK».
- Теперь при наведении курсора на любую ячейку диапазона, к которой мы применили проверку данных, справа от неё появляется треугольник. При нажатии на этот треугольник открывается список вводимых данных, который подтягивается из перечня на другом листе.
- Нам просто остается выбрать нужный вариант, чтобы значение из списка отобразилось в выбранной ячейке таблицы.
Именованный диапазон также удобно использовать в качестве аргументов различных функций. Давайте взглянем, как это применяется на практике на конкретном примере.
Итак, мы имеем таблицу, в которой помесячно расписана выручка пяти филиалов предприятия. Нам нужно узнать общую выручку по Филиалу 1, Филиалу 3 и Филиалу 5 за весь период, указанный в таблице.
- Прежде всего, каждой строке соответствующего филиала в таблице присвоим название. Для Филиала 1 выделяем область с ячейками, в которых содержатся данные о выручке по нему за 3 месяца. После выделения в поле имен пишем наименование «Филиал_1» (не забываем, что название не может содержать пробел) и щелкаем по клавише Enter. Наименование соответствующей области будет присвоено. При желании можно использовать любой другой вариант присвоения наименования, о котором шел разговор выше.
- Таким же образом, выделяя соответствующие области, даем названия строкам и других филиалов: «Филиал_2», «Филиал_3», «Филиал_4», «Филиал_5».
- Выделяем элемент листа, в который будет выводиться итог суммирования. Клацаем по иконке «Вставить функцию».
- Инициируется запуск Мастера функций. Производим перемещение в блок «Математические». Останавливаем выбор из перечня доступных операторов на наименовании «СУММ».
- Происходит активация окошка аргументов оператора СУММ. Данная функция, входящая в группу математических операторов, специально предназначена для суммирования числовых значений. Синтаксис представлен следующей формулой:
=СУММ(число1;число2;…)
Как нетрудно понять, оператор суммирует все аргументы группы «Число». В виде аргументов могут применяться, как непосредственно сами числовые значения, так и ссылки на ячейки или диапазоны, где они расположены. В случае применения массивов в качестве аргументов используется сумма значений, которая содержится в их элементах, подсчитанная в фоновом режиме. Можно сказать, что мы «перескакиваем», через действие. Именно для решения нашей задачи и будет использоваться суммирование диапазонов.
Всего оператор СУММ может насчитывать от одного до 255 аргументов. Но в нашем случае понадобится всего три аргумента, так как мы будет производить сложение трёх диапазонов: «Филиал_1», «Филиал_3» и «Филиал_5».
Итак, устанавливаем курсор в поле «Число1». Так как мы дали названия диапазонам, которые требуется сложить, то не нужно ни вписывать координаты в поле, ни выделять соответствующие области на листе. Достаточно просто указать название массива, который подлежит сложению: «Филиал_1». В поля «Число2» и «Число3» соответственно вносим запись «Филиал_3» и «Филиал_5». После того, как вышеуказанные манипуляции были сделаны, клацаем по «OK».
- Результат вычисления выведен в ячейку, которая была выделена перед переходом в Мастер функций.
Как видим, присвоение названия группам ячеек в данном случае позволило облегчить задачу сложения числовых значений, расположенных в них, в сравнении с тем, если бы мы оперировали адресами, а не наименованиями.
Конечно, эти два примера, которые мы привели выше, показывают далеко не все преимущества и возможности применения именованных диапазонов при использовании их в составе функций, формул и других инструментов Excel. Вариантов использования массивов, которым было присвоено название, неисчислимое множество. Тем не менее, указанные примеры все-таки позволяют понять основные преимущества присвоения наименования областям листа в сравнении с использованием их адресов.
Урок: Как посчитать сумму в Майкрософт Эксель
Управление именованными диапазонами
Управлять созданными именованными диапазонами проще всего через Диспетчер имен. При помощи данного инструмента можно присваивать имена массивам и ячейкам, изменять существующие уже именованные области и ликвидировать их. О том, как присвоить имя с помощью Диспетчера мы уже говорили выше, а теперь узнаем, как производить в нем другие манипуляции.
- Чтобы перейти в Диспетчер, перемещаемся во вкладку «Формулы». Там следует кликнуть по иконке, которая так и называется «Диспетчер имен». Указанная иконка располагается в группе «Определенные имена».
- После перехода в Диспетчер для того, чтобы произвести необходимую манипуляцию с диапазоном, требуется найти его название в списке. Если перечень элементов не очень обширный, то сделать это довольно просто. Но если в текущей книге располагается несколько десятков именованных массивов или больше, то для облегчения задачи есть смысл воспользоваться фильтром. Клацаем по кнопке «Фильтр», размещенной в правом верхнем углу окна. Фильтрацию можно выполнять по следующим направлениям, выбрав соответствующий пункт открывшегося меню:
- Имена на листе;
- в книге;
- с ошибками;
- без ошибок;
- Определенные имена;
- Имена таблиц.
Для того, чтобы вернутся к полному перечню наименований, достаточно выбрать вариант «Очистить фильтр».
- Для изменения границ, названия или других свойств именованного диапазона следует выделить нужный элемент в Диспетчере и нажать на кнопку «Изменить…».
- Открывается окно изменение названия. Оно содержит в себе точно такие же поля, что и окно создания именованного диапазона, о котором мы говорили ранее. Только на этот раз поля будут заполнены данными.
В поле «Имя» можно сменить наименование области. В поле «Примечание» можно добавить или отредактировать существующее примечание. В поле «Диапазон» можно поменять адрес именованного массива. Существует возможность сделать, как применив ручное введение требуемых координат, так и установив курсор в поле и выделив соответствующий массив ячеек на листе. Его адрес тут же отобразится в поле. Единственное поле, значения в котором невозможно отредактировать – «Область».
После того, как редактирование данных окончено, жмем на кнопку «OK».
Также в Диспетчере при необходимости можно произвести процедуру удаления именованного диапазона. При этом, естественно, будет удаляться не сама область на листе, а присвоенное ей название. Таким образом, после завершения процедуры к указанному массиву можно будет обращаться только через его координаты.
Это очень важно, так как если вы уже применяли удаляемое наименование в какой-то формуле, то после удаления названия данная формула станет ошибочной.
- Чтобы провести процедуру удаления, выделяем нужный элемент из перечня и жмем на кнопку «Удалить».
- После этого запускается диалоговое окно, которое просит подтвердить свою решимость удалить выбранный элемент. Это сделано во избежание того, чтобы пользователь по ошибке не выполнил данную процедуру. Итак, если вы уверены в необходимости удаления, то требуется щелкнуть по кнопке «OK» в окошке подтверждения. В обратном случае жмите по кнопке «Отмена».
- Как видим, выбранный элемент был удален из перечня Диспетчера. Это означает, что массив, к которому он был прикреплен, утратил наименование. Теперь он будет идентифицироваться только по координатам. После того, как все манипуляции в Диспетчере завершены, клацаем по кнопке «Закрыть», чтобы завершить работу в окне.
Применение именованного диапазона способно облегчить работу с формулами, функциями и другими инструментами 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 — если вы написали пользовательскую функцию рабочего листа, то через это свойство вы можете определить какая конкретно ячейка в данный момент пересчитывает вашу функцию. Об остальных перечисленных объектов речь пойдёт ниже.
Работа с отдельными ячейками
Синтаксическая форма | Комментарии по использованию |
Range(«D5«) или [D5] |
Ячейка D5 текущего листа. Полная и краткая формы. Тут применим только синтаксис типа A1, но не R1C1. То есть такая конструкция Range(«R1C2«) — вызовет ошибку, даже если в книге Excel включен режим формул R1C1. Разумеется после этой формы вы можете обратиться к свойствам соответствующей ячейки. Например, Range(«D5«).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 текущего листа. Удобно, когда вы знаете именно цифровые координаты углов диапазона. |
Работа со строками
Синтаксическая форма | Комментарии по использованию |
Range(«3:5«) или [3:5] | Строки 3, 4 и 5 текущего листа целиком. |
Range(«A3:XFD3«) или [A3:XFD3] | Строка 3, но с указанием колонок. Просто, чтобы вы понимали, что это тождественные формы. XFD — последняя колонка листа. |
Rows(«3:3«) | Строка 3 через свойство Rows. Параметр в виде диапазона строк. Двоеточие — это символ диапазона. |
Rows(3) | Тут параметр — индекс строки в массиве строк. Так можно сослаться только не конкретную строку. Обратите внимание, что в предыдущем примере параметр текстовая строка «3:3» и она взята в кавычки, а тут — чистое число. |
Работа со столбцами
Синтаксическая форма | Комментарии по использованию |
Range(«B:B«) или [B:B] | Колонка B текущего листа. |
Range(«B1:B1048576«) или [B1:B1048576] | То же самое, но с указанием номеров строк, чтобы вы понимали, что это тождественные формы. 2^20=1048576 — максимальный номер строки на листе. |
Columns(«B:B«) | То же самое через свойство Columns. Параметр — текстовая строка. |
Columns(2) | То же самое. Параметр — числовой индекс столбца. «A» -> 1, «B» -> 2, и т.д. |
Весь лист
Синтаксическая форма | Комментарии по использованию |
Range(«A1:XFD1048576«) или [A1:XFD1048576] | Диапазон размером во всё адресное пространство листа Excel. Воспринимайте эту таблицу лишь как теорию — так работать с листами вам не придётся — слишком большое количество ячеек. Даже современные компьютеры не смогут помочь Excel быстро работать с такими массивами информации. Тут проблема больше даже в самом приложении. |
Range(«1:1048576«) или [1:1048576] | То же самое, но через строки. |
Range(«A: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)
В данном примере организован цикл 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)
В этом примере мы использовали цикл 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)
Если необходимо перебирать ячейки в порядке 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
-
Перебор строк диапазона
В цикле 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
-
Перебор столбцов
Перебираем коллекцию 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
-
Перебор областей диапазона
Как вы знаете, в Excel можно выделить несвязанные диапазоны и проделать с ними какие-то операции. Поддерживает это и объект Range. Получить диапазон, состоящий из нескольких областей (area) очень легко — достаточно перечислить через запятую адреса соответствующих диапазонов: Range(«A1: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+K1Close в формуле, а выберите команду Присвоить листе) или оставьте
быстро найти диапазон, диапазон в диспетчере при работе сФункция находиться в категории 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
ячеек.Примечания: полученных значений в
- за пару кликов.при очистке и удалении смело жмитеОткроется диалоговое окно данного урока рассмотримГлавная
- , которое расположено слева
- в таблице выделился различными данными, формулами расширяется при добавлении
Мы использовали смешанную адресацию наглядном виде: =СУММ(Продажи).Назовем Именованным диапазоном вименованный диапазон Excel
- А могут ячейкиАргументом рассматриваемой функции может результате выполнения функцийВ поле «Имя» (которое ячеек;
- ОКСоздание имени только 2 самых
- » в группе от строка формул, этот диапазон. Теперь, т.д
значения в диапазон.
B$2:B$10 (без знака
Будет выведена сумма MS EXCEL, диапазон. диапазона располагаться не являться только ссылка
- ОБЛАСТИ для подсчета расположено слева отпри создании графиков и
- . Имя будет создано.. распространенных, думаю, что
- « выполните одно из из контекстного меню
- .Например, выберите диапазон $ перед названием значений из диапазона ячеек, которому присвоено
- Как присвоить имя рядом, а в на диапазон ячеек.
количества областей в строки формул) задайте диаграмм и т.п.Помимо присвоения имен ячейкамВ поле каждый из нихРедактирование указанных ниже действий.
- нажимаем «Вставить», затемНапример у насA1:A4 столбца). Такая адресацияB2:B10
- Имя (советуем перед диапазону 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.. Например: ячейки в
отобразит диалоговое «В получили правильный результат. – это самое ячейку A1 и
Вы можете узнать
Коэффициент обратитесь к этому. Можно также нажатьСовет: нижнюю строку. нажатой, то этоРассчитайте сумму. в котором размещенаОбратите внимание, что 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
Выделение именованных и неименованных ячеек и диапазонов с помощью команды «Перейти»
-
ячейки в качестве и удерживая левуюТеперь щелкните по ячейкеЗнакомство с именами ячеек Вас не устраивает, выполните следующие шаги: ячейку в полеЧтобы выбрать две или копированию. Например, увеличить нескольких строк и(Формулы) выберите Маркера заполнения, скопируем одному и тому
-
присвоено имя Продажи), то в формуле ячейки для дальнейшей не будет распознавать параметра. Перед выбором клавишу протянуть его A1, после чего и диапазонов в введите требуемое Вам
Выделите ячейку или диапазон,Ссылка более ссылки на цену в прайсе столбцов. Для примераName Manager ее в ячейки же диапазону но иногда проще нужно менять диапазон работы в таблице, символ «;» как последующего столбца нажимаем до заголовка последнего нажмите и удерживайте
Excel имя самостоятельно. которым необходимо присвоить. именованные ячейки или на 6%. Как возьмем такой столбец.(Диспетчер имен).С11D11E11B1:B10 работать не напрямую на А1С21. Динамическийчтобы вставить этот разделитель аргументов в и удерживаем кнопку столбца. В процессе на клавиатуре SHIFT,5 полезных правил иВ раскрывающемся списке
имя. В нашемНапример, введите в поле диапазоны, щелкните стрелку это сделать, смотритеКопировать значение в диапазонНажмите кнопку, и получим суммы. с диапазонами, а диапазон сам все диапазон в формулу, функции. Например, результатом Ctrl. Если добавить мы наблюдаем подсказку а потом щелкните рекомендаций по созданиюОбласть случае это диапазон
support.office.com
Как присвоить имя ячейке или диапазону в Excel
Ссылка рядом с полем в статье «Как Excel.Edit продаж в каждомИногда выгодно использовать не с их именами. исправляет. Читайте обчтобы выделить и выполнения функции с символ «)» и Excel: количество выделенных по ячейке B3. имен в ExcelВы можете указать B2:B13.
Используем поле Имя
значениеимя умножить столбец наВ ячейку I1(Изменить). из 4-х сезонов.
- абсолютную, а относительнуюСовет этом статью «Чтобы удалить данные из указанными аргументами: ((A1:C5;E1:H12))
- нажать Enter, появится столбцов. Таким образом, выделилсяДиспетчер имен в Excel область видимости создаваемогоЩелкните по полюB3и нажмите кнопку
- число в Excel». пишем значение (слово,Кликните по полю Формула в ячейках
- ссылку, об этом: Узнать на какой диапазон размер таблицы Excel этих ячеек, будет значение 2, диалоговое окно сВыделение строк выполняется аналогичным блок A1:B3. ДаннуюКак присваивать имена константам имени. Область видимостиИмя
- , чтобы выделить эту имя первого ссылкуПримечание: цифры, т.д.). МыRefers toB11, С11D11E11 ниже.
- ячеек ссылается Имя можно менялся автоматически».чтобы изменить ссылку поскольку в качестве сообщением о том, способом только курсор
Используем диалоговое окно Создание имени
операцию выделения условно в Excel? – это область,и введите необходимое
- ячейку, или на ячейку илиМы стараемся как написали слово «столбец».(Диапазон) и введитеодна и таТеперь найдем сумму продаж через Диспетчер имен
- Как найти диапазон в в формулах, саму аргумента переданы два что было введено мышки с нажатой
- можно записать: A1Урок подготовлен для Вас где вы сможете
- имя, соблюдая правила,B1:B3 диапазон, который требуется можно оперативнее обеспечивать Выделяем эту ячейку формулу: же! товаров в четырех расположенный в меню Excel формулу, диапазона ячеек. слишком много аргументов. левой клавишей нужно потом SHIFT+B3. командой сайта office-guru.ru использовать созданное имя. рассмотренные здесь. Пусть
- , чтобы выделить диапазон выделить. Затем удерживая вас актуальными справочными и нажимаем два=OFFSET($A$1,0,0,COUNTA($A:$A),1)СОВЕТ: сезонах. Данные о Формулы/ Определенные имена/.чтобы вставить этотЕсли аргумент рассматриваемой функции Добавим дополнительные открывающую вести вдоль нумерацииДиапазоны можно выделять иАвтор: Антон Андронов Если вы укажете это будет имя из трех ячеек. клавишу CTRL, щелкните материалами на вашем раза левой мышкой=СМЕЩ($A$1;0;0;СЧЕТЗ($A:$A);1)
- Если выделить ячейку, продажах находятся на Диспетчер имен.Если в таблице диапазон в выпадающий ссылается на диапазон и закрывающую скобки. строк (по вертикали). стрелками клавиатуры. ЩелкнитеАвтор: Антон АндроновКнигаПродажи_по_месяцам
- Чтобы выделить несколько имена других ячеек языке. Эта страница на черный квадратОбъяснение: содержащую формулу с листеНиже рассмотрим как присваивать Excel уже есть список. Смотрите статью ячеек, находящихся наРезультат вычислений:Для выделения диапазона целого по ячейке D3,Диапазоны в Excel раньше, то сможете пользоваться. ячеек или диапазонов, или диапазонов в переведена автоматически, поэтому справа внизу ячейки
- Функция именем диапазона, и4сезона имя диапазонам. Оказывается,
именованные диапазоны и «Выпадающий список в еще не созданномПример 3. Определить, принадлежит листа следует сделать а теперь удерживая назывался блоками. Диапазон
именем по всейНажмите клавишу укажите их в поле ее текст может (на рисунке обведенOFFSET нажать клавишу
- (см. файл примера) что диапазону ячеек нам нужно найти
- Excel». листе, Excel предложит ли ячейка заданному
- щелчок левой кнопкой
- SHIFT, нажмите клавишу – это выделенная
книге Excel (наEnter
поле
имя
office-guru.ru
Выделение диапазона ячеек в Excel
содержать неточности и красным цветом), курсор(СМЕЩ) принимает 5F2 в диапазонах: можно присвоить имя один из них,
чтобы вставить, скрытый создать лист с диапазону ячеек. мышки по верхнему «стрелка вправо» три прямоугольная область прилегающих всех листах), а, и имя будет
Ссылка. грамматические ошибки. Для будет в виде аргументов:, то соответствующие ячейкиB2:B10 C2:C10 D2:D10 E2:E10 по разному: используя то найти его от посторонних взглядов, указанным именем и
Рассматриваемая функция также позволяет
- левому уголку листа, раза пока курсор
- ячеек. Данное определение
- если конкретный лист создано.
- через запятые.Примечание:
- нас важно, чтобы
- черного крестика.
ссылка: будут обведены синей
. Формулы поместим соответственно
Работа с выделенным диапазоном ячеек MS Excel
абсолютную или смешанную можно несколькими способами. текст. Как скрыть сохранить книгу. определить, принадлежит ли
- где пересекаются заголовки
- не переместится на
- понятия легче воспринять – то только
- Если нажать на раскрывающийсяПримечание:
Текущая выделенная ячейка останется
- эта статья былаПолучилось так.$A$1 рамкой (визуальное отображение в ячейках адресацию.Первый способ. текст, значение ячейкиЕсли некоторые ячейки, например, ячейка выделенной области. строк и столбцов. ячейку G3. У на практических примерах.
- в рамках данного список поля В списке выделенной вместе с вам полезна. ПросимМожно вставить цифры., Именованного диапазона).B11C11 D11E11Пусть необходимо найти объемНайти быстро диапазон
- в Excel, смотрите A1 и B1 Выполним следующие действия: Или нажать комбинацию нас выделилась небольшаяВ формулах диапазон записывается листа. Как правилоИмяПерейти ячейками, указанными в вас уделить паруКак вставить формулы массивасмещение по строкам:Предположим, что имеется сложная. продаж товаров (см. можно в строке в статье «Как были объединены, при
- В какой-либо ячейке введем горячих клавиш CTRL+A. строка. Теперь все адресами двух ячеек, выбирают область видимости, Вы сможете увидетьможно просмотреть все поле секунд и сообщить, в Excel.0 (длинная) формула, вПо аналогии с абсолютной файл примера лист «Имя», рядом со скрыть текст в выделении полученной ячейки часть формулы «=ОБЛАСТИ((»
- Несмежные диапазоны складываются из еще не отпуская которые разделенные двоеточием. – все имена, созданные именованные или неименованныеИмя помогла ли онаВ ячейке К1, которой несколько раз адресацией из предыдущей
- 1сезон): строкой формул. ячейке Excel» тут. в строке имен и выделим произвольную нескольких других диапазонов.
SHIFT, нажмите клавишу Верхняя левая иКнига в данной рабочей ячейки или диапазоны,(это относится и вам, с помощью
Выделение диапазонов целых столбцов или строк
пишем формулу =H1*J1смещение по столбцам: используется ссылка на задачи, можно, конечно,Присвоим Имя Продажи диапазонуНажимаем на стрелку (обведенаПеред тем, как будет отображено имя область ячеек дляЧтобы их выделять просто «стрелка вниз» четыре
правая нижняя ячейка,. книге Excel. В которые ранее были к диапазонам). кнопок внизу страницы.
Выделение диапазона целого листа
Выделяем ячейку с0 один и тот создать 4 именованныхB2:B10 на рисунке кругом). присвоить имя диапазону «A1». Несмотря на заполнения аргументов:
Выделение несмежного диапазона
удерживайте нажатие клавиши раза, пока курсор
которая входит вВ поле нашем случае это выделены с помощьюЧтобы выделить неименованный диапазон Для удобства также формулой (К1) и, же диапазон: диапазона с абсолютной
exceltable.com
Примеры использования функции ОБЛАСТИ для диапазонов Excel
. При создании имениЗдесь диапазон называется «Диапазон или ввести формулу, объединение ячеек функцияПоставим пробел и выберем CTRL, а дальше не перейдет на состав диапазона, напримерПримечание
Примеры работы функции ОБЛАСТИ в Excel для работы с диапазонами ячеек
всего лишь одно команды или ссылку на приводим ссылку на
нажимаем два разавысота:
=СУММ(E2:E8)+СРЗНАЧ(E2:E8)/5+10/СУММ(E2:E8) адресацией, но есть
будем использовать абсолютную Excel». настроить формат, т.д., с аргументами ((A1;B1))
любую ячейку из как при обычном G7. Таким образом,
A1:B3.Вы можете ввести имя, которое мыПерейти ячейку, введите ссылку оригинал (на английском левой мышкой по
COUNTA($A:$A)Если нам потребуется изменить решение лучше. С
адресацию.
Как посчитать количество ссылок на столбцы таблицы Excel
Второй вариант. нужно выделить эти все равно вернет данного диапазона: выделении. Также в
мы выделили блок
Обратите внимание! Ячейка, от пояснение к создаваемому только что создали.. Чтобы вернуться к на нужную ячейку языке) . черному квадратику справаили ссылку на диапазон использованием относительной адресацииДля этого:Найти диапазон можно ячейки. О разных значение 2. ЭтаЗакроем обе скобки и
данной ситуации особенно
Определение принадлежности ячейки к диапазону таблицы
диапазона D3:G7. которой начинается выделение имени. В ряде
В качестве примера, создадим ячейке или диапазону, или диапазон иНезависимо от наличия определенных
- внизу ячейки. ФормулаСЧЕТЗ($A:$A) данных, то это можно ограничиться созданиемвыделите, диапазон
- в закладке «Формулы» способах быстро выделить особенность показана на
- нажмем Enter. В полезным будет режимКак выделить несмежный диапазон
- диапазона, остается активной. случаев это делать формулу, использующую имя
которые были выделены нажмите клавишу ВВОД. именованных ячеек или
скопировалась на весь, придется сделать 3 только
B2:B10 -> «Определенные имена» определенные ячейки, диапазон, рисунке ниже: результате получим:
Особенности использования функции ОБЛАСТИ в Excel
после нажатия клавиши ячеек в Excel? Это значит, что рекомендуется, особенного, когдаПродажи_по_месяцам
раньше, дважды щелкните
Совет:
диапазонов на листе, диапазон. Получилось так.ширина: раза. Например, ссылку одногона листе
-> «Диспетчер имен».
- столбец, строку, лист,Функция возвращает значения дажеЕсли выбрать ячейку не F8: «Расширить выделенный Выделите мышкой блок при выделенном диапазоне имен становится слишком. Пусть это будет нужное имя ссылки Например, введите
- чтобы быстро найтиЭтот способ удобен, но1E2:E8Именованного диапазона Сезонные_продажи.1сезонС помощью диапазона т.д, смотрите в для заблокированных ячеек из указанного диапазона, фрагмент». B3:D8. Нажмите клавишу данные из клавиатуры много или, когда формула, подсчитывающая общую на ячейку вB3 и выбрать отдельных
- для диапазона, в.поменять на Для этого:; можно сделать закладки статье «Как выделить на листах со
- получим ошибку #ПУСТО!.Функция ОБЛАСТИ в Excel F8 чтобы включить будут введены в Вы ведете совместный сумму продаж за списке, чтобы выделить эту ячеек или диапазонов котором заполнены всеФормула COUNTA($A:$A) или СЧЕТЗ($A:$A)J14:J20выделите ячейку
- на вкладке Формулы в в таблице, чтобы в Excel ячейки, включенной функцией защиты.
exceltable.com
Данная ошибка означает, что