Что за программа worksheet

между объектом рабочей книги и ячейками есть еще один промежуточный объект — Worksheet (лист). ОбъектыWorksheet в книге объединены в коллекцию Sheets.

Чаще всего для ввода данных в Excel (напрямую или из базы данных) нам потребуется, в первую очередь, определиться с листом, на который будет выполняться ввод данных — либо просто выбрать его, либо вначале создать, а потом выбрать.

Процесс создания нового листа выглядит очень просто:

Dim oExcel As New Excel.Application ‘Запускаем Excel
oExcel.Visible = True ‘Делаем его видимым
Dim oWbk As Excel.Workbook
Set oWbk = oExcel.Workbooks.Add() ‘Создаем новую книгу
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Add() ‘Создаем новый лист
oSheet.Name = «Новый лист» ‘Присваиваем ему имя «Новый лист»

No code. Программирование без кода. Что вы можете сделать уже сегодня не умея программировать.

Метод Add() для коллекцииWorksheets может принимать несколько необязательных параметров, главная задача которых — определить, между какими существующими листами книги будет вставлен новый лист. Если ничего не указывать, то новый лист будет помещен самым первым.

Часто встречается и другая задача — найти нужный лист среди листов книги, например, если мы открыли существующую книгу. Сделать это очень просто, поскольку коллекция Worksheets умеет работать с именами листов. Далее приведен пример, в котором мы запускаем Excel и создаем новую книгу, но при этом находим лист с именем»Лист1″ и переименовываем его в»Новый

Dim oExcel As New Excel.Application

Set oWbk = oExcel.Workbooks.Add()

Set oSheet = oWbk.Worksheets.Item(«Лист1»)

‘Присваиваем ему имя «Новый лист»

Обратите внимание, что в английской версии Excel этот код не пройдет, поскольку листы там по умолчанию называются «Sheet1″,»Sheet2» и т. п. Если вы используете в коде имена листов, заданные по умолчанию, и при этом вашей программе придется работать на компьютерах с разноязычными версиями Excel, обязательно предусмотрите дополнительные проверки или просто используйте номера листов вместо их имен.

254 Глава 11

У коллекции Sheets есть привычные нам свойства и методы коллекций VBA (Count,Item,Add(),Delete()). Другие свойства и методы удобнее применять

дляобъектаWorksheet(Visible(), Copy(), Move(), PrintOut(), PrintPreview(),

Select()), поскольку все равно нам придется указывать конкретный лист. Однако для этой коллекции предусмотрен и один специфический методFillAcrossSheets() — скопировать объект диапазонаRange (полностью, только содержимое или только оформление) во все листы данной книги.

У объекта Worksheet есть множество важных свойств и методов.

Cells — одно из наиболее часто используемых свойств. Работает точно так же, как и рассмотренное ранее одноименное свойство объектаApplication, за исключением того, что вам не придется ограничиваться только активным листом. Аналогично работают свойстваColumns иRows.

Топ 13 сервисов для управления задачами и проектами | Приложения для продуктивности

EnableCalculation — позволяет отключить автоматический пересчет значений ячеек на листе.

EnableSelection — позволяет запретить выделятьчто-либона листе, снять запрет или разрешить выделять только незаблокированные ячейки.

Next — получает ссылку на следующий лист в книге, в свойствоPrevious — на предыдущий лист.

PageSetup — как и в Word, позволяет получить объектPageSetup, при помощи которого можно настроить те же параметры, что и через меню

Файл | Параметры страницы.

Protection — позволяет получить объектProtection, при помощи которого можно запретить пользователю вносить изменения в лист Excel. Для настройки параметров защиты предназначены также и другие свойства, названия которых начинаются с префиксаProtection.

QueryTables — исключительно важное свойство. Оно возвращает коллекциюQueryTables — набор объектовQueryTable, которые, в свою очередь, представляют данные, полученные из внешних источников (как правило, из баз данных).

Range — самое важное свойство объектаWorksheet. Возвращает объектRange (диапазон ячеек), который в объектной модели Excel занимает примерно такое же место, что и одноименный объект в объектной модели Word. Этот объект будет рассматриваться далее вразд. 11.6.

Type — определяет тип данного листа. Обычно используются два типа:xlWorksheet (обычный лист) иxlChart (диаграмма).

UsedRange — возвращает объектRange, представляющий собой прямоугольную область, включающую все непустые ячейки листа. Удобно использовать для копирования или форматирования.

Программирование в Excel 255

Visible — позволяет спрятать лист от пользователя (например, если он используется для служебных целей).

Некоторые важные методы объекта Worksheet представлены далее.

Activate(), Calculate(), Copy(), Paste(), Delete(), Move(), Evaluate(),

Select(), SaveAs(), PrintOut(), PrintPreview(), Protect(), Unprotect()—

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

PivotTables() — возвращает коллекцию очень интересных объектовPivotTable (сводная таблица), которые будут рассматриваться вразд. 11.8.

Scenarios() — возвращает коллекциюScenarios, состоящую из объектовScenario (сценарии). Сценарии — это именованные наборы вводных данных, которые можно использовать для проверки различных вариантов (разные суммы продаж, уровни налогов, расходов и т. п.).

SetBackgroundPicture() — позволяет назначить листу фоновое изображение (естественно, желательно, чтобы оно было полупрозрачным, как «водяной знак», иначе на его фоне будет трудно читать текст в ячейках).

ShowAllData() — показывает все скрытые и отфильтрованные данные на листе.

Самое важное событие объекта Worksheet — это, конечно,Change. Существует множество практических задач, когда изменение пользователем значения в ячейке должно приводить к изменению значения в ячейке другого листа или рабочей книги Excel, или даже в базе данных. Другая ситуация, в которой используется это событие, — сложная проверка вводимого пользователем значения (например, когда это значение сверяется со значением в базе данных). Эта событийная процедура работает со специальным параметромTarget, т. е. с объектомRange, представляющим изменившуюся ячейку. При помощи свойств и методов объектаRangeвы можете получить информацию об изменившемся значении, столбце и строке, в котором произошло изменение, и т. п.

У объекта Worksheet есть еще два очень удобных события (их сильно
не хватает объектуDocumentв Word) — этоBeforeRightClick()и
Читайте также:
Win7 программа в автозагрузке что это

BeforeDoubleClick(). Как понятно из названий, первое событие позволяет перехватывать щелчок правой кнопкой мыши по любому месту в листе, а второе событие — двойной щелчок мышью. При помощи этих событий вы можете назначить свою реакцию (открытие контекстных меню, выдачу предупреждающих сообщений, переход в другой режим работы и т. п.) на действия пользователя.

Создание приложений MS Word

Структура проекта

Структура проекта Word в целом похожа на структуру проекта Excel. Непосредственно после создания пустого документа проект содержит два объекта: объект Document, представляющий собственно документ, и ссылку на шаблон Normal. В дальнейшем в проект, как обычно, могут быть добавлены другие модули и формы.

ОбъектApplication

Представляет собой собственно приложение Word. Структура его во многом повторяет структуру приложения Excel, особенности связаны с такими возможностями Word, как проверка орфографии, возможности автозамены и т.п., которыми удобнее пользоваться при помощи пользовательского интерфейса.

Работа с документами

Подобно приложению Excel, для работы с документами объектная модель Word предусматривает коллекцию Documents, содержащую объекты Document, представляющие собой любой открытый документ Word.

Рассмотрим методы коллекции Documents.

Метод Add(Template, NewTemplate) используется для добавления нового пустого документа к коллекции открытых документов. Template определяет имя шаблона, используемого для создаваемого документа, а при присвоении параметру NewTemplate значения True создается не обычный документ, а шаблон.

Метод Close (SaveChanges, OriginalFormat) закрывает один или несколько документов. При присвоении параметру SaveChanges значений wdDoNotSaveChanges, wdPromptSaveChanges или wdSaveChanges документ будет либо не сохранен, либо будет выдан запрос на сохранение, либо документ будет сохранен. Значение параметра OriginalFormat определяет формат сохраняемого документа.

Метод Open(FileName) имеет множество параметров. Первый из них (FileName) определяет полный путь и имя открываемого документа. Допускается открытие сразу нескольких документов, при этом их имена должны быть введены через пробел.

Метод Saveпозволяет сохранить все документы, являющиеся элементами коллекции.

К отдельному открытому документу можно получить доступ, например, через коллекцию Documents. Рассмотрим свойства и методы объекта Document приведены втабл. 13.

Свойства и методы объекта Document

Название Описание
GrammarChecked Определяет, была ли запущена проверка орфографии для данного документа
CrammaticalErrors Возвращает коллекциюProofreadingErrors, которая включает предложения, содержащие грамматические ошибки
Name Определяет имя файла на диске, в котором хранится документ. Атрибут только для чтения
Paragraphs Возвращает коллекцию, содержащую все абзацы в заданном документе, диапазоне или выделении
ReadOnly True, если документ открыт только для чтения
Saved Если файл был сохранен, то имеет значение True
ShowSpeelingErrors В значении Trueустанавливает режим подчеркивания слов с грамматическими ошибками
ShowGrammaticalErrors Задает режим подчеркивания во время ввода текста в документ
Styles Возвращает коллекцию, содержащую все стили в заданном документе
Tables Возвращает коллекцию, содержащую все таблицы в заданном документе, диапазоне или выделении
TablesOfContents Возвращает коллекцию, содержащую все оглавления в заданном документе
Type Возвращает тип документа: обычный документ (wdTypeDocument) или шаблон (wdTypeTemplate)
Windows Возвращает коллекцию, содержащую все окна в заданном документе
CheckGrammar При активации этого метода в случае обнаружения ошибок он выводит окно диалога Правописание
PrintPreview Переключает Wordв режим предварительного просмотра документа
Range (Start, End) Возвращает объект Range, который определяется позициями двух символов фрагмента текста: начального и конечного. ЭлементыStartиEndимеют типLongи задают позицию первого и последнего символа в диапазоне
Redo(Times) Отменят последнее из отмененных до этого действий или целую последовательность действий. Timesопределяет количество отменяемых действий
Save Сохраняет документ. Не имеет параметров
SaveAs Позволяет выполнить действия, аналогичные команде Файл|Сохранить как
Undo Отменяет последнее выполненное действие или их последовательность
UpdateStyles Копирует все стили из присоединенного шаблона в документ

Структура объектов MS Word

Дата добавления: 2018-02-28 ; просмотров: 608 ; Мы поможем в написании вашей работы!

Источник: studopedia.net

Камасутра с объектами Worksheet и Range в Excel

Делая раз за разом поисковые запросы вида «delphi excel range» я обнаружил потрясающую бедность, скудоумие и безыдейность предлагаемых примеров готового программного кода. В лучшем случае речь идёт о паре-тройке операций вывода в произвольную ячейку, обо всяких нюансах типа форматирования и доступа к объектам Excel можно… не то чтобы забыть. Авторы ничтоже сумняшеся предлагают переносить код, сгенерированный записью макроса, с учётом синтаксиса Дельфи, в код приложения, которое печатает отчёт. Причём в большинстве примеров используется позднее связывание, которое скрадывает некоторые наиболее ужасные моменты переноса, однако такой код работает далеко не идентично коду на VBA и далеко не все операции обрабатываются должным образом. В результате мы получаем неоправданно громоздкие исходники, компилирующиеся только под определённой версией Delphi/RAD Studio и работающие только с определённой версией Офиса.

Кто не сталкивался с такой конструкцией, разбирая чужие исходники?

Worksheet.Range[Worksheet.Cells[i, 1], Worksheet.Cells[i, MaxCols]].MergeCells := True; Worksheet.Range[Worksheet.Cells[i, 1], Worksheet.Cells[i, MaxCols]].HorizontalAlignment := xlCenter; Worksheet.Range[Worksheet.Cells[i, 1], Worksheet.Cells[i, MaxCols]].VerticalAlignment := xlCenter; for j := 1 to MaxCols do Worksheet.Cells[i + 1, j].Value := j;

В данном случае в некоем цикле построчно объединяются и выравниваются по центру ячейки со столбца A до MaxCols и в следующей строке печатаются номера столбцов.

И вроде как работает она иногда, а иногда не работает. У меня, например, ячейки объединяются, а выравнивание вызывает ошибку. Причём ячейки выделяются строго таким образом в любом примере. А что если в параметры Range попадёт не тот Worksheet? А что если нам с данным диапазоном ещё 100500 операций делать?

Иногда спасает, конечно, конструкция with, но она тоже не идеальна. Выравнивание в ней всё равно не работает. Да и не во всех языках она имеется. Корни зла таятся в матричной адресации ячеек и в позднем связывании. Перепишем код для раннего связывания:

Читайте также:
Что за программа mendeley

Worksheet.Range[Worksheet.Cells.Item[i, 1], Worksheet.Cells.Item[i, MaxCols]].MergeCells := True; Worksheet.Range[Worksheet.Cells.Item[i, 1], Worksheet.Cells.Item[i, MaxCols]].HorizontalAlignment := xlCenter; Worksheet.Range[Worksheet.Cells.Item[i, 1], Worksheet.Cells.Item[i, MaxCols]].VerticalAlignment := xlCenter; for j := 1 to MaxCols do Worksheet.Cells.Item[i + 1, j].Value[xlRangeValueDefault] := j;

Кошмар продолжается. Добавилось мерзкое .Item. Однако выравнивание заработало. Ладно, не будем о грустном.

Настоящее дао построения отчётов на Excel из Delphi открывается, когда знакомишься поближе с объектом Range, а точнее с его свойствами Resize и Offset. Наш кусок кода превращается в довольно элегантное:

// хотелось бы Range := Worksheet.Cells.Item[i, 1].Resize[1, MaxCols], но не судьба 🙁 Range := Worksheet.Range[Worksheet.Cells.Item[i, 1], EmptyParam].Resize[1, MaxCols]; Range.MergeCells := True; Range.HorizontalAlignment := xlCenter; Range.VerticalAlignment := xlCenter; Range := Range.Resize[1, 1]; for j := 1 to MaxCols do Range.Offset[1, j — 1].Value2 := j;

Желающим поэкспериментировать также предлагаю вариант с автозаполнением ячеек:

// вместо цикла for: Range := Range.Offset[1, 0].Resize[1, 1]; Range.Value2 := 1; Range.AutoFill(Range.Resize[1, MaxCols], xlFillSeries);

Ну а чтобы не заморачиваться с оборачиванием Worksheet.Cells.Item в Worksheet.Range, стоит задуматься о создании шаблона отчёта с именованными диапазонами. Это позволит также сэкономить на программном форматировании кода. Но об этом — в следующий раз.

  • Совершенный код
  • Delphi

Источник: habr.com

1.3 Объект Worksheet

— трехмерный диапазон (т.е. состоящий из диапазонов, расположенных на разных рабочих листах).

Основные свойства объекта Range:

— Address (Адрес) возвращает текущее положение диапазона;

— Count (Счет) возвращает количество ячеек в диапазоне;

— Formula (Формула) возвращает формулу, по которой вычисляется значение, отображаемое в ячейке;

— Resize (Изменение размеров) позволяет изменять текущее выделение диапазона;

— Value (Значение) возвращает значения ячеек, составляющих диапазон.

Основные методы объекта Range:

— Offset возвращает объект Range, смещенный относительно конкретной ячейки на заданное количество строк и столбцов.

Object.Offset ([RowOffset] [, ColumnOffset])

где RowOffset – количество строк смещения относительно Object (по умолчанию 0);

ColumnOffset – количество столбцов смещения относительно объекта.

Пример использования метода Offset для указания диапазона.

‘Выделяет данные в диапазоне

Dim DBRows As Integer

Программа выбирает лист Sheet1

Выбирает объект Range с именем Database

Вычисляется количество строк в диапазоне и сохраняется

Возвращает диапазон, который смещен относительно диапазона Database на одну строку вниз. Используется свойство Resize для изменения размеров диапазона

— Select (Выделить) выделяет диапазон;

— Activate (Активизировать) активизирует диапазон;

— Clear (Очистить) очищает содержимое диапазона;

— Copy (Копировать) копирует содержимое диапазона;

— Cut (Вырезать) перемещает содержимое диапазона;

— Past Special (Специальная вставка) вставляет содержимое буфера в диапазон, используя при этом различные аргументы.

Если вам необходимо получить содержимое ячейки или требуется ввести данные в диапазон, используйте два предоставляемых VBA свойства объекта Range: Value и Formula.

Для получения содержимого ячейки:

— если требуется значение ячейки, используйте свойство Value. Например, если в ячейке А1 содержится формула =2*2, то выражение Range(“A1”).Value вернет значение 4;

— если вас интересует содержащаяся в ячейке формула, используйте свойство Formula. Например, если ячейка А1 содержит формулу =2*2, то выражение Range(A1).Format вернет текстовую строку “=2*2”.

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

Sub Арендная плата()

With Range(“A1”) ‘Надписываем ячейки

.Value = “Расчет выплат по ссуде”

‘Вводим формат ячеек и формулу

.Offset(3,1).NumberFormat = “”$#,##0_); [Red]($#,##0)”

.Offset(5,1).NumberFormat = “”$#,##0.00_); [Red]($#,##0.00)”

.Offset(5,1).Formula = “=PMT($B$2)12, $B$3*12, $B$4)”

2 Практическая часть

З а д а н и е 1

Создайте процедуру, которая должна выполнять следующее:

— создать новую рабочую книгу;

— вставить в эту книгу новый рабочий лист;

— дать новому рабочему листу ваше имя;

— сохранить рабочую книгу под именем Лаб5.

Выполните процедуру. Откройте рабочую книгу Лаб5 и введите насколько значений в рабочий лист с вашим именем. Создайте новую процедуру с именем СохрЛаб5. Эта процедура должна определить, сохранена ли рабочая книга после внесения в нее изменений. Если книга была сохранена, то должно выводиться окно с соответствующим сообщением.

Выполните эту процедуру.

3 Контрольные вопросы

3.1 Какой объект находится на высшем уровне иерархии объектов?

3.2 Какой метод применяется для создания новых рабочих книг и рабочих листов?

3.3 Как в VBA удалить рабочий лист из рабочей книги?

3.4 Какое свойство объекта Range позволяет определить адрес одного диапазона на основе адреса другого?

3.5 Как определить, какое количество ячеек составляет диапазон?

3.6 Какой метод применяется для удаления содержимого диапазона?

Лабораторная работа 6

Усовершенствованная процедура построения диаграмм

Цель работы: приобретение навыков записи макроса, создающего диаграмму, исследования и изменения кода этого макроса в VBA.

1 Теоретические сведения

Построение диаграмм – одно из самых популярных средств Excel. Можно автоматизировать процесс построения диаграмм. Для этого необходимо записать макрос, а затем усовершенствовать процедуру построения диаграмм.

Код макроса построения круговой диаграммы по таблице 6.1

будет иметь вид:

Sourse := Sheets(“Лист1”).Range(“A1:B6”), PlotBy := xlColumns

ActiveChart.Location Where := xlLocationAsObject, Name := “Лист1”

Type := xlDataLabelsShowPercent, LegendKey := False, _

.FontStyle = “полужирный курсив”

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

Sourse := Sheets(“Лист1”).Range(“A1:B6”), _

Внесем изменения в процедуру. В верхней части процедуры введем две строки кода с объявлением и заданием новой переменной:

Dim rCurrentRange As Range

Set rCurrentRange = Selection

В операторе задания источника данных замените непосредственное указание диапазона ячеек Sheets(“Лист1”).Range(“A1:B6”) на переменную rCurrentRange:

Sourse := rCurrentRange, PlotBy := xlColumns

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

Для создания еще более усовершенствованной процедуры диаграмм, т.е. такой процедуры, которая проверяла бы количество выделенных столбцов данных, и если выделено два столбца, то строила бы круговую диаграмму, а если выделено три столбца – гистограмму, записывается еще один макрос построения гистограммы, а затем комбинируются две процедуры в одну. При создании такой процедуры используется в основном копирование и вставка кода из ранее созданных

Читайте также:
Rdt программа что это

макросов. “Изнанкой” этой процедуры является применение оператора If. Этот оператор проверяет значение свойства Columns.Count, равное количеству столбцов в выделенном диапазоне ячеек. Если это значение равно 2, то строится круговая диаграмма; если больше двух – строится гистограмма; если выделен один столбец, то выводится соответствующее окно сообщения. Работу этого оператора можно представить в виде следующей схемы:

If Selection.Columns.Count = 2 Then

‘код создания круговой диаграммы

Else Selection.Columns.Count > 2 Then

‘код создания гистограммы

MsgBox “Выделенный диапазон не подходит для построения диаграммы”

2 Практическое задание

З а д а н и е 1

Создайте экранную форму с пятью переключателями (рисунок 6.1):

— Круговая диаграмма;

— Объемная круговая диаграмма;

— Гистограмма;

— Гистограмма с накоплением;

— Объемная гистограмма с накоплением.

Создайте процедуру с именем ВыборТипаДиаграмм, которая выводила бы экранную форму. В экранной форме, в зависимости от числа столбцов в выделенном диапазоне ячеек, должен быть предустановлен или переключатель Круговая диаграмма, или Гистограмма. После выбора пользователем типа диаграммы и щелчка на кнопке ОК формы диаграмма выбранного типа должна быть построена.

Совет: объявите переменную, содержащую выделенный диапазон, как глобальную (public) переменную.

3 Контрольные вопросы

3.1 Какой оператор VBA используется для создания диаграммы?

3.2 Какое свойство объекта Application возвращает текущую активную диаграмму?

3.3 Какое свойство объекта Chart определяет тип создаваемой диаграммы?

3.4 Какой метод объекта Chart управляет данными, отображаемыми в диаграмме?

Лабораторная работа 7

Сводные таблицы.

Запись макроса для создания сводной таблицы

Цель работы: приобретение навыков записи макроса, создающего сводную таблицу; исследования и изменения кода этого макроса в VBA.

1 Теоретические сведения

Большие таблицы данных, состоящие из сотен строк и десятков столбцов, требуют специальных средств анализа таких массивов данных. Одним из эффективных средств Excel, позволяющих просматривать и анализировать большие таблицы данных, являются сводные таб

лицы. Сводные таблицы используются для обобщения больших массивов данных, представляя данные в трехмерном формате. Такой формат позволяет фильтровать данные, отображая различные уровни детализации.

Сводные таблицы обладают следующими свойствами, эффективными при анализе данных:

— встроенные средства фильтрации данных – сводные таблицы автоматически фильтруют информацию, отображая только заданный уровень детализации данных;

— динамически изменяемый макет сводной таблицы – макет можно изменить простым перетаскиванием поля из одной области таблицы в другую;

— автоматическое вычисление промежуточных итоговых значений – для этого достаточно указать поле, по которому необходимо выполнить вычисления, кроме того, легко изменить вычисляющую функцию;

— поддержка широкого спектра источников данных – в качестве источников данных могут выступать рабочие листы Excel, отдельные диапазоны ячеек, внешние базы данных различных типов.

На рисунке 7.2 показан пример сводной таблицы, созданной на основе таблицы, приведенной на рисунке 7.1.

Сводная таблица состоит из нескольких областей (рисунок 7.3):

— область Страница – представляет самый верхний уровень детализации данных;

— область Строка – элементы полей, помещенные в эту область, используются в качестве заголовков строк и представляют более низкий уровень детализации;

— область Столбец – элементы полей, помещенные в эту область, используются как заголовки столбцов сводной таблицы;

— область Данные – элементы полей, помещенные в эту область, используются для вычислений.

При разных вариантах размещения полей списка по областям сводной таблицы данные будут группироваться по-разному, и можно получить уровни детализации по различным критериям. Можно помещать по несколько полей во все области сводной таблицы. В этом случае получится иерархическая структура уровней группирования данных, а сводная таблица станет мощным средством просмотра данных с различных точек зрения.

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

Код макроса, строящего сводные таблицы, будет иметь вид:

ActiveWorkbook.PivotCaches.Add(SourceType := xlDataBase, _

SourceData := “Лист1 !R1C1:R37C4”) . CreatePivotTable _

TableDestination := “ ”, TableName := “СводнаяТаблица1”

TableDestination := ActiveSheet.Cells (3, 1)

With ActiveSheet.PivotTables(“СводнаяТаблица1”). _

With ActiveSheet.PivotTables(“СводнаяТаблица1”). _

With ActiveSheet.PivotTables(“СводнаяТаблица1”). _

With ActiveSheet.PivotTables(“СводнаяТаблица1”). _

Если вы попытаетесь выполнить макрос еще раз, то получите сообщение об ошибке, т.к. сводная таблица с тем именем, которое ука-зано в аргументе, уже создана. Чтобы сделать процедуру более гибкой, внесите в ее код следующие изменения (изменения и новые операторы выделены курсивом).

Dim ptSales As PivotTable

Set ptSales = ActiveWorkbook.PivotCaches.Add _

(SourceType := xlDataBase, SourceData := _

“Лист1 !R1C1:R37C4”).CreatePivotTable(TableDestination := “ ”)

TableDestination := ActiveSheet.Cells (3, 1)

ptSales.SmallGrid = False

With ptSales.PivotFields(“Год”)

With ptSales.PivotFields(“Район”)

With ptSales.PivotFields(“Категория товара”)

With ptSales.PivotFields(“Объем продаж”)

2 Практическая часть

З а д а н и е 1

Создайте следующую таблицу (рисунок 7.4):

Запишите макрос, который на основе этой таблицы будет создавать сводную таблицу следующего вида (рисунок 7.5):

Рисунок 7.5

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

3 Контрольные вопросы

3.1 Назовите имена двух коллекций, которые необходимы для создания сводных таблиц.

3.2 Какое свойство объекта PivotField назначает поля данных областям сводной таблицы (т.е. областям страницы, строк, столбцов и данных)?

3.3 Назовите четыре области сводной таблицы.

3.4 Какой метод создает отчет сводной таблицы?

3.5 Истинно или ложно следующее утверждение: сводную таблицу можно создать только на основе данных, которые записаны на рабочем листе Excel?

Лабораторная работа 8

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru