
- •15.1. Как обратиться к ячейке
- •15.2. Методы Range
- •15.2.1. Activate - активация ячейки
- •15.2.2. AddComment - добавляем комментарии к ячейкам
- •15.2.3. AutoFit - автонастройка ширины столбцов и высоты строк
- •15.2.4. Clear, ClearComments, ClearContents, ClearFormats - очистка и удаление
- •15.2.5. Copy, Cut, PasteSpecial - буфер обмена
- •15.2.6. Delete - удалить диапазон
- •15.2.7. Merge, UnMerge - объединение ячеек
- •15.2.8. Select - выделение ячейки
- •15.3. Свойства Range
- •15.3.1. Address - адрес ячейки в формате a1
- •15.3.2. Areas - работа с несмежными выделенными областями
- •15.3.3. Borders - управление границами ячеек
- •15.3.4. Cells, Columns, Rows - ячейки, столбцы, строки
- •15.3.5. CurrentRegion - область, заполненная данными
- •15.3.6. Characters, Font - форматирование текста
- •15.3.7. Formula, FormulaR1c1 - формулы в ячейках
- •15.3.8. Interior - внешний вид ячейки
- •15.3.9. Name - работа с именованными диапазонами
- •15.3.10. Value - содержимое ячейки
15.2.5. Copy, Cut, PasteSpecial - буфер обмена
Выше мы уже рассматривали команды для работы с буфером обмена в MS Excel. Метод Copy копирует содержимое диапазона в буфер обмена, Cut - вырезает, PasteSpecial осуществляет специальную вставку.
Как ни странно, объект Range не поддерживает метод Paste, осуществляющий обычную вставку, однако, этот метод поддерживает объект Worksheet.
15.2.6. Delete - удалить диапазон
Удаляет выделенный диапазон - остальные ячейки сдвигаются, занимая его место.
15.2.7. Merge, UnMerge - объединение ячеек
15-03-Range Merge.xlsm - пример к п. 15.2.7.
Merge позволяет создать одну объединенную ячейку из заданного диапазона.
UnMerge разбивает объединенную ячейку на обычные ячейки.
Объединенные ячейки удобно использовать для хранения в них названий таблиц.
В листинге 15.13. мы программно формируем таблицу шириной в 10 ячеек. Заполняем ее данными, автоматически подстраиваем ширину столбцов под введенные значения. После этого вводим в левую верхнюю ячейку строки, которая расположена над таблицей, название таблицы, и объединяем все ячейки до конца таблицы, расположенные левее строки с названием. В итоге название будет отображено в одной большой строчке, занимающей всю верхнюю часть таблицы (рис. 15.2.).
'Заполняем область 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
Листинг 15.13. Оформление таблиц с использованием объединения ячеек (html, txt)
Рис. 15.2. Название таблицы в объединенной ячейке
15.2.8. Select - выделение ячейки
15-04-Range Select.xlsm - пример к п. 7.7.2.8.
Выделяет ячейки или ячейку. Выделив ячейку, к ней можно обращаться, используя объект Selection. Так же этот объект можно использовать для работы с ячейками, предварительно выделенными пользователями.
Например, в листинге 15.14. мы находим сумму чисел, которые хранятся в ячейках диапазона, выделенного пользователем перед запуском макроса.
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)
15.3. Свойства Range
15.3.1. Address - адрес ячейки в формате a1
15-05-Range Address.xlsm - пример к п. 15.3.1.
Возвращает строку, представляющую собой адрес ячейки в формате A1. Адрес выводится в абсолютном виде - снабжается знаками $.
Листинг 15.15 позволяет, задав адрес ячейки в виде R1C1, вывести ее адрес в формате A1.
Dim num_Row
Dim num_Col
Dim MyRange As Range
num_Row = Val(InputBox("Введите столбец"))
num_Col = Val(InputBox("Введите строку"))
Set MyRange = _
ActiveSheet.Cells(num_Row, num_Col)
MsgBox (MyRange.Address + _
" - имя ячейки " & _
" с индексами " & num_Row & " и " & num_Col)
Листинг 15.15. Вывод адреса ячейки в формате A1 (html, txt)