Как обратиться к ячейке Работа с ячейками в
Как обратиться к ячейке Работа с ячейками в Excel осуществляется, в основном, через объект типа Range. Можно адресовать ячейку или диапазон ячеек, указав их адреса в стиле A1. Здесь и далее мы используем метод Select объекта Range, который выделяет ячейки. ActiveSheet.Range("A2").Select Для обращения к диапазону ячеек нужно знать верхнюю правую и нижнюю левую границы диапазона. Например, для обращения к диапазону высотой в одну строку от A2 до E2 или к диапазону A2:E4 - понадобится такой код. ActiveSheet.Range("A2:E2").Select ActiveSheet.Range("A2:E4").Select Можно воспользоваться конструкцией с использованием объекта Cells, который позволяет обращаться к отдельной ячейке по ее индексу в формате R1C1. Чтобы обратиться к ячейке A5 таким способом, нужно заметить, что она расположена в пятой строке и первом столбце: ActiveSheet.Cells(5,1).Select Можно объединить использование Range и Cells, указав координаты ячеек при адресации диапазона с помощью Cells ActiveSheet.Range(Cells(5, 4), Cells(7, 5)).Select
Как обратиться к ячейке При использовании Cells для доступа к группам ячеек в цикле в качестве индексов ячеек можно использовать переменные For i = 1 To 3 For j = 1 To 3 ActiveSheet.Cells(i, j).Select Application.Wait (Now + TimeValue("0:00:01")) p = p + 1 Selection = p Next j Next i ActiveSheet.Range("A1:E5").Clear Здесь мы циклически выделяем ячейки диапазона A1:C3, делая задержку на 1 секунду после каждого выделения и выводя количество прошедших с начала работы программы секунд. Здесь мы воспользовались для выделения ячейки уже знакомым вам методом Select, а для ввода данных в выделенную ячейку применили объект Selection, который в данном случае ссылается на выделенную ячейку. В конце мы очистили диапазон A1:E5 от введенных данных. Объект Selection - это еще один способ работы с ячейками, однако он используется сравнительно редко, так как к ячейкам удобнее обращаться по их именам.
Как обратиться к ячейке Выше мы использовали прямое обращение к ячейкам активного листа, без использования объектных переменных. Dim obj_MyCell As Range Set obj_MyCell = ActiveSheet.Cells(5, 5) obj_MyCell.Select Помимо обращения к отдельным ячейкам или их диапазонам, Excel предусматривает возможность обращения к строкам и столбцам, а так же - к листу целиком. В следующем примере мы сначала выделяем столбец A, потом столбец B, используя коллекцию Columns (столбцы), 3-ю строку, используя коллекцию Rows(строки) а далее - лист целиком. ActiveSheet.Range("A:A").Select ActiveSheet.Columns("B:B").Select ActiveSheet.Range("3:3").Select ActiveSheet.Rows("4:4").Select ActiveSheet.Cells.Select Еще один способ обращения к ячейкам - применение именованных диапазонов (коллекция Names) мы рассмотрим ниже. А теперь поговорим о методах и свойствах объекта Range. Объект Selection - это еще один способ работы с ячейками, однако он используется сравнительно редко, так как к ячейкам удобнее обращаться по их именам.
Методы Range Activate - активация ячейки Позволяет выбрать ячейку в выделенном диапазоне. Даже когда выделен диапазон ячеек, активной является лишь одна из них. Чтобы изменить эту активную ячейку, и применяется данный метод. Если использовать вместо метода Activate метод Select, то ячейка будет выделена, а остальное выделение - снято. В то же время, если попытаться активировать ячейку, расположенную вне выделенного диапазона, выделение снимется, и активированная ячейка окажется выделенной. Например, в следующем листинге сначала выделяется диапазон ячеек, а потом, не снимая выделения, одна из ячеек диапазона делается активной. Range("A1:E5").Select Range("C2").Activate AddComment - добавляем комментарии к ячейкам Позволяет добавлять комментарии к ячейкам. Если вы формируете какой-нибудь Excel-документ программно, вы можете добавить в некоторые ячейки комментарии для пояснения данных, которые в них хранятся. Range("C3").AddComment ("Проверка комментария") В правом верхнем углу ячейки появится красный треугольник, а наведя мышь на ячейку, можно увидеть текст комментария.
Методы Range Комментарий в ячейке MS Excel
Merge, UnMerge - объединение ячеек Merge позволяет создать одну объединенную ячейку из заданного диапазона. UnMerge разбивает объединенную ячейку на обычные ячейки. Объединенные ячейки удобно использовать для хранения в них названий таблиц. В следующем примере программно формируется таблица шириной в 10 ячеек. В левую верхнюю ячейку строки, которая расположена над таблицей, вводится название таблицы, и объединяются все ячейки до конца таблицы, расположенные левее строки с названием. В итоге название будет отображено в одной большой строчке, занимающей всю верхнюю часть таблицы. 'Заполняем область C3:L2 'случайными целыми числами For i = 1 To 10 For j = 1 To 10 ActiveSheet.Cells(i + 2, j + 2) = Int(Rnd * 100) Next j Next i 'Выравниваем размер столбцов ActiveSheet.Range("C:L").Columns.AutoFit 'Записываем название таблицы 'в ячейку верхней строчки Range("C2") = "Название таблицы" 'Объединяем ячейки над таблицей Range("C2:L2").Merge В правом верхнем углу ячейки появится красный треугольник, а наведя мышь на ячейку, можно увидеть текст комментария.
Название таблицы в объединенной ячейке
Select - выделение ячейки Выделяет ячейки или ячейку. Выделив ячейку, к ней можно обращаться, используя объект Selection. Так же этот объект можно использовать для работы с ячейками, предварительно выделенными пользователями. Например, в следующем примере находится сумма чисел, которые хранятся в ячейках диапазона, выделенного пользователем перед запуском макроса. Dim obj_Range As Range Dim num_Sum 'Обращаемся к каждой ячейке 'в выделенной области For Each obj_Range In Selection.Cells num_Sum = num_Sum + Val(obj_Range) Next MsgBox ("Сумма выделенных ячеек: " & num_Sum) В правом верхнем углу ячейки появится красный треугольник, а наведя мышь на ячейку, можно увидеть текст комментария.
Свойства Range Cells, Columns, Rows - ячейки, столбцы, строки Свойство Cells позволяет обращаться к отдельным ячейкам в диапазоне. При работе с этим свойством в отдельном диапазоне ячеек нумерация ячеек ведется по собственной системе координат. Иными словами, диапазон выступает как небольшой виртуальный рабочий лист: левая верхняя ячейка диапазона получает индекс (1,1), ячейка, расположенная во втором столбце и третьей строке диапазона, - индекс (3,2) и т.д. Свойства Columns и Rows возвращают, соответственно, коллекции, которые содержат столбцы и строки диапазона. Например, в следующем примере можно узнать количество строк в диапазоне, ссылка на который хранится в переменной obj_Range. num_Rows = obj_Range.Rows.Count Воспользуемся свойством Cell для диапазона размером 6х5 ячеек, чтобы заполнить этот диапазон данными . Dim obj_Range As Range Set obj_Range = ActiveSheet.Range("B2:F7") For i = 1 To obj_Range.Rows.Count For j = 1 To obj_Range.Columns.Count obj_Range.Cells(i, j) = Int(Rnd * 100) Next j Next i Здесь мы присваиваем ссылку на диапазон ячеек B2:F7 переменной obj_Range, после чего в цикле, используя свойство Cells для этой переменной, заполняем выбранный диапазон значениями.
Свойства Range Formula, FormulaR1C1 - формулы в ячейках Formula позволяет записать в ячейку формулу, а также - узнать, какая формула записана в ячейке. Формулы используют ссылки на ячейки в стиле A1. Например, для записи в ячейку A1 суммы ячеек A2 и A3, нам понадобится такая команда: Range("A1").Formula = "=$A$2+$A$3" Свойство FormulaR1C1 записывает в ячейку формулу, используя стиль ссылок R1C1. В следующем примере заполняются формулами ячейки, которые будут отражать суммы по строкам. For i = 1 To 5 'Ссылка на ячейку с формулой Set obj_Range = ActiveSheet.Cells(i, 6) 'Ссылка на первую ячейку диапазона Set obj_Range1 = ActiveSheet.Cells(i, 1) 'На последнюю ячейку Set obj_Range2 = ActiveSheet.Cells(i, 5) 'Формула передается в ячейку в виде строки 'формируем строку такого вида: '=SUM($A$1:$A$5) obj_Range.Formula = _ "=sum(" + obj_Range1.Address + ":" + _ obj_Range2.Address + ")" Next i
Свойства Range Interior - внешний вид ячейки Позволяет управлять внешним видом ячейки. В частности, настраивать ее цвет. Например, такой код позволяет окрасить ячейку A1 в красный цвет: Range("A1").Interior.Color = vbRed Value - содержимое ячейки Позволяет узнать или установить содержимое ячейки. Того же эффекта можно добиться, если обращаться к ячейке без указания каких-либо свойств. Рассмотрим пример - здесь мы получаем с помощью свойства Value значение, хранящееся в ячейке, если оно меньше 0 - записываем в ячейку модуль хранящегося в ней числа и меняем цвет ячейки на vbCyan (голубой). Dim obj_Cell As Range For Each obj_Cell In ActiveSheet.Range("A1:E8") If obj_Cell.Value < 0 Then obj_Cell.Value = Abs(obj_Cell.Value) obj_Cell.Interior.Color = vbCyan End If Next
Свойства Range Interior - внешний вид ячейки Позволяет управлять внешним видом ячейки. В частности, настраивать ее цвет. Например, такой код позволяет окрасить ячейку A1 в красный цвет: Range("A1").Interior.Color = vbRed Value - содержимое ячейки Позволяет узнать или установить содержимое ячейки. Того же эффекта можно добиться, если обращаться к ячейке без указания каких-либо свойств. Рассмотрим пример - здесь мы получаем с помощью свойства Value значение, хранящееся в ячейке, если оно меньше 0 - записываем в ячейку модуль хранящегося в ней числа и меняем цвет ячейки на vbCyan (голубой). Dim obj_Cell As Range For Each obj_Cell In ActiveSheet.Range("A1:E8") If obj_Cell.Value < 0 Then obj_Cell.Value = Abs(obj_Cell.Value) obj_Cell.Interior.Color = vbCyan End If Next
534-5.vba_obyekt_range.ppt
- Количество слайдов: 12