|
Хитрости и советы: Microsoft Excel
Часть 1
- Способы подсчета числа ячеек.
- Суммирование и подсчет числа значений с использованием нескольких критериев.
Часть 2
- Как из нескольких xls-файлов сделать одну книгу Excel.
- Как правильно очистить ячейку от содержимого.
- Создание собственных функций рабочего листа средствами VBA.
Смотрите также хитрости и советы: Delphi & Microsoft Excel.
1. Как из нескольких xls-файлов сделать одну книгу Excel.
Проще всего это сделать копированием листов целиком из одной книги в другую:
- Создайте/Откройте рабочую книгу, в которую будут помещены результаты.
- Откройте xls-файл с исходными данными.
- Сделайте активным копируемый лист.
- Выберите "Правка, Переместить/скопировать лист" ("Edit, Move or Copy Sheet") или в контекстном меню "Переместить/скопировать" ("Move or Copy")
- В возникшем диалоговом окне установите флажок "Создать копию" ("Create a copy").
- В списке "В книгу" ("To book") укажите книгу, в которую вы хотите копировать (в списке будут только открытые в данный момент рабочие книги).
- Выберите из списка "Перед листом" ("Before sheet") название рабочего листа, перед которым будет вставлена копия.
- Жмите "ОК".
- Повторите пункты 2-8 для всех нужных листов и файлов.
Примечания:
- если вы любите все делать с помощью мышки, разместите обе книги на экране, захватите курсором ярлычок нужного вам листа и удерживая <Ctrl> перенесите его из одной книги в другую;
- для копирования сразу нескольких листов, необходимо их предварительно сгруппировать;
- к сожалению, при копировании листов между книгами переносятся только первые 255 символов ячейки.
2. Как правильно очистить ячейку от содержимого.
Для того, чтобы очистить ячейку, нужно использовать не Value = "", а Range.ClearContents.
Если не сделать этого, ячейка по-прежнему будет в UsedRange листа.
3. Создание собственных функций рабочего листа средствами VBA.
В Microsoft Excel существует множество готовых функций, но их не всегда достаточно.
Однако вы можете из любой формулы рабочего листа вызвать собственную функцию на VBA,
реализовав в ней все необходимые вам операции:
Function MyFunc (ByVal Param as Variant)
Dim Result as Integer
Application.Volatile True
....
MyFunc = Result
End Function
По умолчанию, функции VBA в диапазоне рабочего листа являются неизменяемыми,
т.е не вызываются при пересчете листа, на котором они расположены. Чтобы пересчитывать
результат вашей функции вместе с остальными формулами, необходимо в теле функции вызвать
метод Volatile объекта Application (как показано на примере выше), передав в качестве
аргумента True.
Эти функции вы свободно можете использовать в формулах областей XL Report.
|