Работа с диапазонами в Excel

Автор: | 12.02.2016

Мне приходится часто, занимаясь мониторингом на сайте http://monitoring-mo.ru, снимать аналитику по отдельным таблицам по всем учреждениям района.

При этом формируется таблица Excel, в которой обычно сверху стоит наименование таблицы, далее шапка и данные.

Левый первый столбец – это полное наименование ОУ, второй столбец период, а далее идут данные, Таблица организована не достаточно хорошо.

  1. Нет разрыва строк между названием таблицы и шапкой;
  2. 2 первых ячейки шапки  объединены и нет наименования ячейки;
  3.  Название ОУ содержит впереди своего имени название района и косую черту.

Мне, как правило, нужно отделить таблицу от названия, вставив строку

Rows(“2:2”).Select
Selection.Insert Shift:=xlDown

Затем надо разделить две ячейки

Range(“A3:B3”).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge

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

В первые 2 ячейки шапки вводим наименования.

Range(“A3”).Select
ActiveCell.FormulaR1C1 = “Наименование ОУ”
Range(“B3”).Select
ActiveCell.FormulaR1C1 = “Период”

Убираем далее название района в наименованиях ОУ

Columns(“A:A”).Select
Range(“A3”).Activate
Selection.Replace What:=”Орехово-Зуевский муниципальный район / “, _
Replacement:=””, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:= _
False, SearchFormat:=False, ReplaceFormat:=False

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

adres = Range(“a3”).CurrentRegion.Address

или получить объект Range с этим диапазоном

Set tbl = ActiveCell.CurrentRegion

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

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

Для работы с диапазонами на активном листе можно, используя также команду UsedRange. например: ActiveSheet.UsedRange.Address или  ActiveSheet.UsedRange.Select. А получив адрес, можно его всячески изменять как и в команде UsedRange.

Пример выделения диапазона ячеек в файле Проверка работы с диапазоном на DropBox