Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Presentation_2s-2.doc
Скачиваний:
16
Добавлен:
24.03.2015
Размер:
526.85 Кб
Скачать

11.2.8. Создание и удаление групп на листахExcel

1. Использование элемента управления NamedRange.

– Создание группы элементов управления NamedRangeна листе.

With Me

.data2001.Group()

.data2002.Group()

.dataAll.Group()

End With

– Удаление групп элементов управления NamedRange.

With Me

.data2001.Ungroup()

.data2002.Ungroup()

.dataAll.Ungroup()

End With

2. Использование собственных диапазонов Excel.

– Создание группы диапазонов Excel на листе:

With Me.Application

.Range("data2001").Group()

.Range("data2002").Group()

.Range("dataAll").Group()

End With

– Удаление групп собственных диапазонов Excel.

With Me.Application

.Range("data2001").Ungroup()

.Range("data2002").Ungroup()

.Range("dataAll").Ungroup()

End With

11.2.9. Изменение форматирования строк листа

Private Sub BoldCurrentRow(ByVal ws As Excel.Worksheet)

'1. Объявление статической переменной для отслеживания

'предыдущей выбранной строки.

StaticpreviousRowAsInteger= 0

'2. Извлечение ссылки на текущую активную ячейку

'с помощью свойства ActiveCell.

DimcurrentCellAsExcel.Range=Me.Application.ActiveCell

'3. Применение к текущей строке стиля жирного начертания

'с помощью свойства EntireRow активной ячейки.

currentCell.EntireRow.Font.Bold=True

'4. Проверка факта, что текущее значение previousRow не равно

'"0". Значение "0" означает, что код выполняется впервые.

IfpreviousRow<> 0Then

'5. Проверка факта, что текущая строка отличается

'от предыдущей.

IfcurrentCell.Row<>previousRowThen

'6. Извлечение ссылки на диапазон, представляющий

'ранее выбранную строку,а затем отмена жирного

'начертания для этой строки.

Dim rng As Excel.Range = _

DirectCast(ws.Rows(previousRow), Excel.Range)

rng.EntireRow.Font.Bold = False

End If

End If

'7.Сохранение номера текущей строки, чтобы она стала

'предыдущей при следующем проходе.

previousRow=currentCell.Row

End Sub

11.2.10. Копирование данных и форматирование по листам

Me.Application.ActiveWorkbook.Sheets.FillAcrossSheets( _

Me.Application.Range("rangeData"), _

Excel.XlFillWith.xlFillWithAll)

11.2.11. Проверка орфографии на листах

– в настройке на уровне документа:

Globals.Sheet1.CheckSpelling()

– в надстройке уровня приложения:

CType(Application.ActiveSheet, Excel.Worksheet).CheckSpelling()

11.2.12. Программная сортировка данных

1. Сортировка данных в элементе управления NamedRange.

– в проекте уровня документа (в классе листа):

Me.Fruits.Sort(Key1:=Me.Fruits.Columns(1), _

Order1:=Excel.XlSortOrder.xlAscending, _

Key2:=Me.Fruits.Columns(2), _

Order2:=Excel.XlSortOrder.xlAscending, _

Orientation:=Excel.XlSortOrientation.xlSortColumns, _

Header:=Excel.XlYesNoGuess.xlNo, _

SortMethod:=Excel.XlSortMethod.xlPinYin, _

DataOption1:=Excel.XlSortDataOption.xlSortNormal, _

DataOption2:=Excel.XlSortDataOption.xlSortNormal, _

DataOption3:=Excel.XlSortDataOption.xlSortNormal)

– в проекте уровня приложения (в VisualStudio, начиная с версии 2008 сSP1):

Dim Fruits As Excel.Range = Me.Application.Range("A1", "B2")

Fruits.Sort(Key1:=Fruits.Columns(1), _

Order1:=Excel.XlSortOrder.xlAscending, _

Key2:=Fruits.Columns(2), _

Order2:=Excel.XlSortOrder.xlAscending, _

Orientation:=Excel.XlSortOrientation.xlSortColumns, _

Header:=Excel.XlYesNoGuess.xlNo, _

SortMethod:=Excel.XlSortMethod.xlPinYin, _

DataOption1:=Excel.XlSortDataOption.xlSortNormal, _

DataOption2:=Excel.XlSortDataOption.xlSortNormal, _

DataOption3:=Excel.XlSortDataOption.xlSortNormal)

2. Сортировка данных в элементе управления ListObject.

– в проекте уровня документа (в классе листа):

Me.fruitList.Range.Sort( _

Key1:=Me.fruitList.ListColumns(1).Range, _

Order1:=Excel.XlSortOrder.xlAscending, _

Key2:=Me.fruitList.ListColumns(2).Range, _

Order2:=Excel.XlSortOrder.xlAscending, _

Orientation:=Excel.XlSortOrientation.xlSortColumns, _

Header:=Excel.XlYesNoGuess.xlYes)

– в проекте уровня приложения (в VisualStudio, начиная с версии 2008 сSP1):

Dim fruitList As Excel.ListObject = _

CType(Application.ActiveSheet, _

Excel.Worksheet).ListObjects.AddEx( _

Excel.XlListObjectSourceType.xlSrcRange, _

Application.Range("A1", "B2"))

fruitList.Range.Sort(Key1:=fruitList.ListColumns(1).Range, _

Order1:=Excel.XlSortOrder.xlAscending, _

Key2:=fruitList.ListColumns(2).Range, _

Order2:=Excel.XlSortOrder.xlAscending, _

Orientation:=Excel.XlSortOrientation.xlSortColumns, _

Header:=Excel.XlYesNoGuess.xlYes)