Самоучитель VBA


         

Исключаем расширение из имени книги



' Первоначальный критерий сортировки - направление тура,

' второстепенный - произведение оплаты

Dim n Аs Integer '

' n - вспомогательная переменная '

Sheets("БазаДанных").Range("A2").Select

n = Selection. CurrentRegion. Rows. Count '

' Определение числа записей в базе данных

'

Worksheets("БазаДанных").Range(Cells(2, 1),

Cells(n + 1, 8))

.Sort keyl—Worksheets("БазаДанных")

.Range("D2"), orderl:=xlAscending,

key2:=Worksheets("БазаДанных").Range("E2")," _

order2:=xlDescending

'

' Сортировка по турам в возрастающем,

' а по оплате - в убывающем порядке

'

End Sub

Private Sub СводнаяТаблица ()

'

' Процедура построения сводной таблицы

'

Dim n As Integer

'

'

Dim Списки, Назначение As String

Dim Лист As Object

Dim ИмяКниги As String

ИмяКниги = ActiveWorkbook.Name

'

' Исключаем расширение из имени книги '

For i = 1 То Len(ИмяКниги)

If Mid(ИмяКниги, i, 1) = "." Then

ИмяКниги = Mid(ИмяКниги, 1, i - 1)

Exit For

End If

Next i

ИмяКниги = Trim(ИмяКниги)

' Удаляются ранее созданные рабочие листы с именем .СводнаяТаблица

For Each Лист In Worksheets

If Лист.Name = "СводнаяТаблица" Then Sheets("СводнаяТаблица").Delete

End If

Next Лист

' Создается новый рабочий лист с именем СводнаяТаблица

'

Worksheets.Add

ActiveSheet.Name = "СводнаяТаблица"

n = Worksheets("БазаДанных").Range("A2")

.CurrentRegion.Rows.Count

'

'

' Определение диапазона, по которому будет строиться

' сводная таблица (Списки) и

где она будет расположена (Назначение).

' Эти диапазоны записываются в виде строковых выражений

Списки = "БазаДанных!R1C1:R" & CStr(n) & "С8"

Назначение = "[" & ИмяКниги & "]СводнаяТаблица!R1C1"

'

' Создание сводной таблицы '

ActiveSheet.PivotTableWizard

SourceType:=xlDatabase,

SourceData:=Cписки,

TableDestination:=Hазвание, ТаblеNаmе:="Отчет"

Содержание  Назад  Вперед