Программы, надстройки и макросы для обработки таблиц Excel (преобразование и форматирование таблиц, создание новых таблиц из исходных)
-
Надстройка FillDocuments для MS Excel: общие сведения
Предназначение программы: заполнение множества документов данными из Excel нажатием одной кнопки.
Для работы программы требуется таблица Excel с данными для подстановки, и папка с шаблоном (шаблонами) документов.
В качестве шаблонов можно использовать файлы Word и Excel.
На выходе получаются заполненные файлы исходного… -
Программа «Прайс лист», выполненная в виде надстройки для Excel, позволяет легко автоматизировать обработку прайс-листов.
Вспомните ситуацию: поставщики в очередной раз прислали свои прайс-листы в Excel — конечно, в совершенно разных форматах — и вам нужно объединить данные из всех этих файлов в одну таблицу. А составители этих таблиц будто специально хотели усложнить вам жизнь… -
Программа предназначена для сравнения и подстановки значений в таблицах Excel.
Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.
То же самое можно сделать при помощи формулы =ВПР(), но:формулы…
-
Этот макрос предназначен для сбора (загрузки) информации из файлов Excel, расположенных в одной папке.
Для работы этого макроса, помимо него самого, вам понадобится добавить в свой файл:функцию FilenamesCollection для получения списка файлов в папке
функцию GetFolder для вывода диалогового окна выбора папки с запоминанием выбранной папки
прогресс-бар для отображения…
-
Программа предназначена для автоматизации процесса создания форм ввода и редактирования данных из таблиц Excel.
Сейчас реализована лишь малая часть программы.
Но уже сейчас программа достаточно точно распознаёт типы полей таблицы, и для полей типа «выпадающий список» и «поле с маской ввода» формирует список значений и маску ввода соответственно.
Как будет свободное время -… -
Программа предназначена для формирования (заполнения) договоров купли-продажи.
Исходными данными выступает таблица сделок, и шаблон договора, в который при помощи формул подставляются значения из заданной строки таблицы сделок.
Для запуска программы достаточно нажать зеленую кнопку — и сразу же начнётся формирование договоров (файлов Excel из одного листа) в автоматически созданной папке… -
Макрос предназначен для создания текстовых файлов в кодировке UTF-8.
Исходными данными является таблица Excel из 12 столбцов.
Сначала, макрос создаёт папку для будущих текстовых файлов.
Папка создаётся в том же каталоге, где расположена книга Excel.
Далее, для каждой строки таблицы, макрос формирует подпапку,
используя в качестве её названия текст из 7-го столбца таблицы.
И потом, когда папка… -
Данный макрос предназначен для поиска адресов электронной почты на листе Excel, с последующим выводом найденных адресов на отдельный лист.
В прикреплённом файле, на первом листе («исходные данные»), ячейки заполнены неструктурированной информацией (смесь фамилий, адресов почты, прочей ненужной информации)
Макрос вычленяет из текста ячеек адреса электронной почты, и выводит все найденные… -
Надстройка SearchText предназначена для поиска заданного текста в книге Excel, с выводом результатов поиска на отдельный лист.
При запуске надстройка формирует панель инструментов, с которой осуществляется запуск всех макросов:В Excel 2007 и 2010 панель инструментов можно найти на вкладке «Надстройки»:
Надстройка SearchText является расширенной версией надстройки для…
-
Программа предназначена для сравнения цен конкурентов из их прайсов с прайс-листом вашей организации.ВНИМАНИЕ: Недавно разработана многофункциональная программа для обработки прайс-листов
Новая программа объединения и обработки прайс-листов доступна на сайте для скачивания и тестирования на различных наборах прайс-листов.
Исходными данными для программы являются:
ваш прайс…
-
К примеру, есть у вас несколько десятков (или сотен) текстовых файлов с подобным содержимым:
(количество файлов, и количество строк данных в каждом файле не ограничено)
1c04;1J0-698-151-G;1 комплект тормозных накладок;1J0698151G;1J0698151G;5;1
1c04;1H0698151A;Тормозные колодки;1H0698151A;1H0698151A;1;1
1c04;1K0-698-151-B;Тормозные колодки;1K0698151B;1K0698151B;2;1
А надо из всего этого… -
Программа предназначена для автоматизации формирования договоров комиссии и купли автотранспортного средства.
В качестве исходных данных выступают:таблица Excel с реквизитами создаваемых документов
папка с шаблонами договоров (в формате dot)В исходной таблице Excel занесены все необходимые исходные данные для заполнения бланков договоров, а также, при помощи пользовательских формул (UDF),…
-
База данных «Преподаватели» предназначена для автоматизации работы администрации учебных заведений.Программа обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.
Эта база данных представляюет собой урезанную и немного изменённую версию программы АИСС СПК.
Программа обеспечивает:
Хранение полной…
-
Программа предназначена для поиска минимальных цен на товары в Яндекс.Маркете
UPDATE: Продажа программы прекращена 14 мая 2015 года, ввиду нерентабельности техподдержки
(это единственная из моих программ, где я не могу гарантировать работоспособность, — т.к. всё зависит от Яндекса, который часто меняет сайт, и вводит ограничения типа капчи).
Техподдержка программы тоже прекращена в полном… -
Макрос FilenamesWithValues предназначен для получения списка файлов Excel из заданной папки, и загрузки значений из каждого найденного файла.
В отдельной ячейке задаётся путь к папке, которая будет просмотрена в поисках файлов Excel.
При формировании списка файлов проставляются гиперссылки на найденные файлы, указывается дата создания файла.
Из каждого файла загружаются значения с… -
Программа предназначена для работы с заказами, оформляемыми менеджерами на выставках.Основные функции программы:
создание (заполнение) новых заказов
редактирование существующих заказов
объединение нескольких заказов в один
формирование заявки на продукцию на основании данных их сформированных заказов
Для каждого заказа предусмотрен выбор клиента из базы данных (если клиент…
-
Программа АИСС «СПК» предназначена для автоматизации работы приемной комиссии колледжей и техникумов.АИСС обеспечивает выполнение всех необходимых операций по приему документов, поиску и анализу информации, составлению отчетов.
Назначением программы является автоматизация труда работника приёмной комиссии учебного заведения.
Программа обеспечивает:
Хранение полной…
-
Если ваш макрос выдаёт ошибку при использовании метода SpecialCells — возможно, причина в установленной защите листа Excel.
Почему разработчики Microsoft отключили работу этой функции на защищённых листах — не совсем понятно, но мы попробуем обойти это ограничение.
Итак, нам надо получить все заполненные ячейки из некого диапазона листа Excel.
Обычно для этого используется вызов… -
Если вам нужно рассылать письма из Excel,
воспользуйтесь готовым решением в виде надстройки FillDocuments
Ознакомьтесь с возможностями и способами рассылки писем из Excel,
а также с инструкцией по настройке рассылки через TheBATМакроc предназначен для автоматизированной рассылки почты из Excel.
Для рассылки используется почтовая программа TheBAT!
(подразумевается, что эта программа на… -
Надстройка предназначена для выполнения множественных замен в выделенном диапазоне ячеек.
После запуска надстройки, появляется панель инструментов из 3 кнопок:
Кнопка «Выполнить все замены» — выполняет замены в выделенном диапазоне ячеек
Кнопка «Изменить список замен» — отображает лист настроек, где в первом столбце находится список заменяемых…
-
Функция UniqueValues возвращает коллекцию, содержащую уникальные непустые значения из диапазона ячеек (или массива)
Function UniqueValues(ByVal arr) As Collection
‘ функция получает в качестве параметра массив любой размерности
‘ возвращает коллекцию уникальных НЕПУСТЫХ значений
Set UniqueValues = New Collection: On Error Resume Next
For Each v In arr
v = Trim(v): If Len(v… -
Программа выполняет поиск организаций по ИНН на официальном сайте для размещения информации о государственных (муниципальных) учреждениях bus.gov.ru, и заносит данные о найденных организациях в таблицу Excel.
Смотрите также парсер сайта bus.gov.ru,который создаёт в Excel таблицу со списком организаций с этого сайта по выбранному региону и сферам деятельности.
На скриншоте красным цветом…
-
Функция GetValue предназначена для получения данных из закрытой книги Excel
Использовать такой способ имеет смысл только в том случае, если из большого файла надо получить значения только нескольких ячеек (или одного диапазона ячеек), и при этом точно известно расположение на листе интересующих нас ячеек, и имена листов
Пример использования функции:
Sub ПримерИспользования_GetValue()
p =… -
Программа предназначена для загрузки списка товаров из актов о приеме-передаче основных средств.
Поддерживаются акты по формам № ОС-3.1 и № ОС-3.3, возможно добавить поддержку актов других форм (в формате Excel).
При запуске макроса, выводится диалоговое окно выбора папки, после чего, в выбранной папке, производится поиск всех файлов Excel.
Для каждого из найденных файлов Excel, программа… -
Данный макрос автоматизирует процесс переключения раскладки клавиатуры (смену языков ввода) при работе с таблицами в Excel.К примеру, вы заносите данные в таблицу, где в некоторые столбцы требуется вводить русские слова (фамилия, имя, и т.п.), а в другие столбцы — английские (марка и модель авто, и т.д.)
Чтобы каждый раз не переключать раскладку вручную — можно воспользоваться WinAPI…
-
Часто бывает, что надо получить данные из другой, открытой вместе с используемой, книги Excel.
Данная функция помогает получить ссылку на другую, открытую в текущий момент, книгу:
Sub ПримерИспользования_GetAnotherWorkbook()
Dim WB As Workbook
Set WB = GetAnotherWorkbook
If Not WB Is Nothing Then
MsgBox «Выбрана книга: » & WB.FullName, vbInformation
Else… -
Надстройка для транслитерации или кодирования (замены символов их кодами) выделенного диапазона ячеек Excel
При запуске надстройки в Excel формируется панель инструментов, при помощи которой можно выполнять следующие действия:Нажатием кнопки RU->EN выполнить транслитерацию выделенного диапазона ячеек
Нажатием кнопки EN->RU выполнить транслитерацию выделенного диапазона ячеек
В…
-
Программный комплекс, предназначенный для автоматизации учёта и администрирования сети связи телефонной или телекоммуникационной компании.Программа позволяет хранить и редактировать базу данных объектов (в виде файлов Excel), просматривать существующие трассы и формировать новые.
Особенность программы — возможность учёта и администрирования узлов связи с нестандартными…
-
Программа позволяет сформировать отчёты по базе данных больницы.
Кроме того, реализован ввод данных в базу о новых пациентах. -
Функция TextFile2Array предназначена для преобразования файла CSV в двумерный массив
Очень часто при работе с текстовыми файлами (и, в частности, с файлами CSV) приходится их загружать на лист Excel, предварительно производя фильтрацию данных в этом файле.
Чтобы упростить весь процесс — от выбора файла CSV в диалоговом окне, до разбиения загруженного из файла текста в двумерный массив, и была… -
Программа предназначена для формирования прайс-листов на ноутбуки с соответствии с требованиями интернет-каталога Onliner.byОсновные функции программы:
(учитываются цены фирм-конкурентов, цены onliner.by и надбавка фирмы)
загрузка каталога ноутбуков (названия, характеристики, цены) с сайта onliner.by в файл Excel, и обновление этого каталога
назначение соответствий моделей…
-
Программа предназначена для составления учебного расписания.
На отдельных листах хранится список преподавателей вуза, список групп и занятий у этих групп по дням недели.
Макрос делает выборку по всем преподавателям (или по выбранному преподавателю),
фильтрует по заданной группе (курсу), если не выбрана опция «все курсы»,
сортирует по времени начала занятия, группирует по дню… -
Система учёта заявок предназначена для автоматизации ввода, редактирования и учёта заданий на заказ запасных частей для автомобилей.Программа позволяет производить поиск по базе данных, и распечатку информации о выбранном заказе.
Эта база данных представляет собой урезанную и немного изменённую версию программы АИСС СПК.
-
Программа предназначена для обработки таблиц с тарифами на междугородную и международную телефонную связь.Присутствует опция выгрузки обработанной таблицы в файл формата XML.
При запуске программы (которая выполнена в виде надстройки Excel) формируется дополнительная панель инструментов:
Формируемый надстройкой XML-файл имеет такую структуру:
-
Программа предназначена для формирования заданий на производство.
Исходными данными выступают таблицы Excel и файлы XML.
При конвертации таблиц происходит обработка данных и перестановка столбцов.
При запуске программа формирует панель инструментов с 6 кнопками — для обработки файлов различной структуры. -
Программа предназначена для формирования единого прайс-листа автозапчастей на основании нескольких исходных прайсов различной структуры.ВНИМАНИЕ: Описанная в данной статье программа послужила прототипом для новой, многофункциональной программы, где пользователь сам может настраивать обработку прайс-листов
Новая программа объединения и обработки прайс-листов доступна на сайте для…
-
Макрос формирует прайс-лист для отправки клиенту.
Исходными данными являются позиции из основного прайс-листа фирмы.
При формировании нового прайса учитывается бонус продавца, а также коэффициенты дохода и доставки.
Помимо этого простейшего макроса, у нас на сайте есть множество других программ для работы с прайс-листами.
Например, для сбора данных из прайсов разных поставщиков… -
Программа предназначена для преобразования файлов формата .HTM с объявлениями о продаже недвижимости (файлы являются результатом сохранения веб-страниц с сайтов публикации объявлений) в формат Microsoft Excel.
Программа производит анализ текста объвлений, распознаёт значения площади и этажности, отделяет второстепенные данные (комментарий) из текста объявления, преобразует различные форматы цен (… -
Если у вас есть таблица Excel, в которой, в определённом столбце, через запятую перечислены значения (или диапазоны значений), а вы хотите получить аналогичную таблицу, но чтобы в каждой строке было только одно значение, — то вам на помощь придёт функция ExtendArray.(пример работы функции можно увидеть на прикреплённом изображении)
В своей работе ExtendArray использует функцию…
-
Программа предназначена для предпечатной подготовки, и последующего вывода на печать (на виртуальный ПДФ принтер) документов Excel.
Программа позволяет:подгонять файлы, выгруженные из 1С, под печать на одной странице
изменять ориентацию страницы для счетов-фактур
вставлять реквизиты (фамилии, информацию о доверенностях) в специально выделенные для этого ячейки
вставлять…
-
Программа предназначена для работы с заявками на оборудование.Цели программы:
автоматизация составления и редактирования заявок
преобразование имеющихся заявок в виде отдельных файлов Excel различной структуры к единому виду
формирование отчётов по категориям и типам заявок
стандартизация печатной формы заявок
разграничение доступа на работу с базой данных заявок
…
-
Данная программа предназначена для выборки выражений по заданным «минус словам»
В качестве базы используется выгрузка из файлов формата csv, данные загружаются в столбец «A» (далее БАЗА).
В столбец «E» заносятся слова которые нужно найти в БАЗЕ. При нажатии на кнопку «Добавить минус слова» происходит выборка вхождений заданных шаблонов… -
Макрос предназначен для экспорта выделенного диапазона ячеек книги Excel в код HTML.
Смотрите также надстройку для экспорта таблицы или выделенного диапазона ячеек в HTML
Результат (HTML код таблицы) помещается в буфер обмена.
Первая строка выделенного диапазона ячеек считается заголовком таблицы (обрамляется тегами <th> вместо <td>)
Например, мы имеем… -
Sub ПримерИспользования()
‘ задаём полный путь к обрабатываемому файлу
ПутьКФайлу$ = ThisWorkbook.Path & «» & «Contract.XLS»
Application.ScreenUpdating = False ‘ отключаем обновление экрана
arr = LoadArrayFromWorkbook(ПутьКФайлу$, «a2», 30) ‘ загружаем данные‘ выводим результаты в окно Immediate
Debug.Print «… -
Программа предназначена для сбора данных из отчётов нефтедобывающих компаний.
Исходными данными выступают файлы оперативной отчётности следующих типов:Добыча
Переработка
Сбыт
Сервис
Анализ
На распределение
Во втором столбце таблицы перечислены названия компаний, чьи отчеты программа будет обрабатывать,
а в строке заголовка — список месяцев, данные по по… -
Надстройка предназначена для быстрой конвертации выделенного диапазона ячеек в HTML код для вставки на сайт.
При запуске надстройки, формируется панель инструментов (на ленте, на вкладке Надстройки)
с 2 кнопками: экспорт в HTML всей таблицы, или только выделенного диапазона ячеек
Файл надстройки, — во вложении к статье.
Программа корректно обрабатывает объединённые ячейки.
Количество… -
Клавиша:
Ctrl + T
Макрос:
Создание Текстовых ФайловКлавиша:
Ctrl + 4
Макрос:
Окраска Объединённых ЯчеекКлавиша:
Ctrl + 5
Макрос:
Окраска Всех Объединённых ЯчеекКлавиша:
Ctrl + G
Макрос:
Объединение Значений Из ЯчеекКлавиша:
Ctrl + Shift + G
Макрос:
Разъединение Значений Из ЯчеекКлавиша:
Ctrl + Shift + D
Макрос:
Поиск Дубликатов В КнигеКлавиша:
Ctrl + Shift + O
Макрос:… -
Программа предназначена для расчёта твердости металла (сплава) по изображению оттиска, выполненного на специальном оборудовании (с многократным увеличением)
В качестве исходных данных выступает 24-битное изображение в формате BMP, на основании результатов обработки которого (считывается массив, содержащий цвета отдельных пикселей) и производятся все дальнейшие вычисления.
Сначала из массива… -
Программа предназначена для вывода отчёта по мероприятиям налоговой инспекции.
Исходные данные для обработки расположены на других листах того же файла Excel:
перечень мероприятий налогового контроля, проведенных в отношении контрагентов
поручения об истребовании документов (информации)
запросы в кредитные организации о предоставлении сведений по операциям на счетах…
-
Программа предназначена для автоматизации рабочего места сотрудника, отвечающего за регистрацию, прием на работу, и увольнение иностранных граждан.
В качестве исходных данных используется таблица изображенная на скриншоте.
В этой таблице содержится нужная информация, необходимая для заполнения шаблонов документов.
Программа заполняет следующие документы:Доверенность (doc)
Заявление на…
-
Макрос предназначен для создания сводной таблицы и диаграммы для отчёта по трафику.В качестве исходных данных выступает таблица со статистикой доступа в интернет — сформированная программой создания отчётов по статистике
Создаваемая сводная диаграмма позволяет легко проанализировать причины перерасхода трафика, а сводная таблица предоставляет детализированный отчёт по каждому сайту.
При…
-
Программа предназначена для обработки отчётов управления по сделкам с ценными бумагамиОсновные функции программы:
Создание новых отчётов управления (за следующий квартал) на основании текущих отчётов
Внесение изменений и дополнений в существующие отчёты
Формирование сводной таблицы по вкладам для оценки роста, а также коэффициентов ликвидности и версификации вкладов
Обработка…
-
Программа предназначена для объединения однотипных отчётов, сформированных программой 1С
Обрабатываемые отчёты (файлы Excel) хранятся в одной папке, и имеют структуру, изображенную на скриншоте:В итоговой таблице, загруженные строки группируются (объединяются) при совпадении значений в 2 полях — «модель» и «название»,
при этом количество в объединяемых… -
Программа позволяет загружать котировки различных валют из файлов формата .HTM, и анализировать их при различных параметрах анализа.
Все котировки разбиваются на отдельные блоки (временные диапазоны для разбивки задаются на форме настроек), и анализ производится по каждому блоку в отдельности.
Есть возможность исключить из расчётов данные за пятницу.
Изменение параметров вычисления значений BS… -
Программа предназначена для выборки данных из текстовых файлов, которые были сгенерированны инвентаризационной программой
В качестве исходных данных для макроса используются текстовые файлы, в которых находится информация о конфигурации компьютеров
(на каждый компьютер приходится по 3 файла).
Работу макроса можно разделить на следующие этапы:Выбор папки с данными по всем компьютерам…
-
Программа служит для преобразования тиковых значений котировок в свечи необходимого периода
Исходный файл в формате .csv получается в результате выгрузки (экспорта) котировок с сайта www.finam.ru (Фьючерсы ФОРТС),
и содержит большое количество строк (записей) — около 1 миллиона за 1 день.
В исходном файле CSV имеется таблица со следующими столбцами:
<TICKER> <PER> <DATE… -
Программа предназначена для вывода информации о скором наступлении события
Каждый раз при открытии файла (и автоматической активации макроса), происходит проверка разницы между текущей датой, и датой окончания действия полиса
(столбец номер 7 на скриншоте).
Если эта разница находится в пределах 10 дней (параметр можно менять по своему усмотрению), то на отдельный лист выводится ссылка на… -
Программа предназначена для формирования отчёта по серверам компании (список технических характеристик, IP адресов, установленного программного обеспечения)
В качестве исходных данных для программы имеется выгрузка из Help Desk системы Acme в формате XLS, но этот отчёт, хоть и содержит все необходимые данные, крайне неудобен для анализа и дальнейшей обработки:Программа производит поиск…
-
Программа предназначена для анализа ожидаемой доходности различных портфелей(рассматриваются всевозможные комбинации проектов)
При помощи формул типа =СЛЧИС() на листах с характеристиками проектов генерируются различные комбинации исходных значений, на основании которых формулами рассчитывается доходность проекта.
Методом Монте-Карло формируются массивы значений (по одному массиву для…
-
Программа предназначена для создания отчётов по детализации телефонных звонков (междугородная и международная связь), последующей упаковки созданных детализаций в ZIP архив, и автоматизированной рассылки сформированных писем абонентам.
При запуске программа ищет в заданной папке исходные файлы с детализацией (упакованные в ZIP файлы DBF), и на основании из этих файлов формирует (по шаблону, с… -
Программа позволяет сформировать списки игр, отсортированные по различным критериям.
На основании результатов программы букмекеры могут правильно выстроить «линию», то есть, учитывая массу нюансов, с достаточной долей вероятности определить фаворитов и аутсайдеров в предстоящих играх, и сделать выгодные ставки. -
Программа предназначена для формирования коммерческих предложений по наружной рекламе.
В качестве исходных данных выступает файл Excel со списком рекламных объектов.Список объектов должен содержать следующую информацию (в отдельных столбцах):
адрес рекламной конструкции (щита)
сторона рекламного щита или перетяжки (А, Б, В, и т.п.)
ссылки на фото и карту рекламной конструкции
(… -
Программа предназначена для формирования таблицы Excel для расчёта суммы оплаты за услуги ЖКХ (холодного и горячего водоснабжения)
В качестве исходных данных выступает таблица, в которой занесены показания счётчиков (расход горячей и холодной воды)
Макрос производит поиск клиентов в исходной таблице (по номеру лицевого счёта), и подставляет данные по этому клиенту в итоговую таблицу.
Вы… -
Программа позволяет в процессе ввода новых данных в таблицу Excel отслеживать наличие совпадений с записями из «черного списка», расположенного на отдельном листе.
Особенности данной программы:
поиск частичных совпадений (адреса могут совпадать лишь частично, при сравнении файмилий не учитываются 2 последних буквы, и т.д.)
можно изменить «точность» совпадения — в… -
Программа предназначена для создания маркировальных этикеток для идентификации груза
В качестве исходных данных используется таблица (на скриншоте) имеющая следующие поля:НАИМЕНОВАНИЕ ТОВАРА
КОД ТНВЭД
КОЛИЧЕСТВО
ЕД. ИЗМ.
ВЕС НЕТТО
ВЕС БРУТТО
МЕСТА
ТИП УПАКОВКИ
ОБЪЕМ
ТОРГОВАЯ МАРКА
ПРОИЗВОДИТЕЛЬ
ФОТО
ЗАВОДСКАЯ МАРКИРОВКА
МАРКИРОВКА
НОМЕР ЗАЯВКИ…
-
Программа позволяет выполнить сквитовку первой продажи и первой покупки в таблице сделокВ результате работы программы таблица сделок принимает вид, показанный на скриншоте.
Исходными данными выступает таблица сделок в таком формате:
Для проверки корректности работы программы она формирует лог-файл примерно такого содержания:
========= Обработка строки 1 ===================
Текущее… -
Надстройка позволяет одним щелчком мыши выполнить копирование выделенных строк в один из файлов, расположенных в специальной папке на сервере или локальном компьютере.
Надстройка при запуске добавляет несколько пунктов в контекстное меню ячейки (см. скриншот)
При закрытии (отключении) надстройки дополнительные пункты контекстного меню исчезают.
В коде указываются настройки программы:
‘… -
Надстройка PhoneNumbers предназначена для обработки номеров телефонов в таблице Excel, в выводом найденный (распознанных) номеров в отдельный столбец
Основное предназначение: Извлечение номеров телефонов из Excel файла.
Пример исходных данных и результата можно посмотреть в прикреплённом файле Excel (на первом листе — что есть изначально, на втором — то, что получается… -
Программа позволяет искать в выбранной папке изображения, основываясь на содержимом ячеек таблицы Excel, и производить вставку найденных изображений в соседние ячейки.Реализовано:
сжатие вставляемых изображений
поиск картинок в подпапках
установка выбранного пользователем размера для вставляемых изображений
отображение состояния обработки файла (прогресс-бар)
При вставке… -
Надстройка предназначена для формирования оглавления прайс-листов, расположенных на отдельных листах книги Excel.При запуске программа формирует панель инструментов:
Особенности программы:
группировка строк каждого прайс-листа
формирование обратных ссылок с прайс-листов на оглавление
-
Программа предназначена для импорта данных из одного файла Excel (проект разработки нефтяных месторождений) в другой файл (форма отчета).
Макрос выполнен в виде надстройки для Excel, добавляющей в меню приложения кнопку «Скопировать» для запуска формы.
На форме выбираются исходное и конечное поля, нажимается кнопка «Перенести данные», — и программа, сопоставляя столбцы двух файлов, производит… -
Программа предназначена для получения данных с сайта Национального рейтингового агенства.
Исходными данными является столбец с гиперссылками.
Результат выводится на отдельный лист.
Собираемые программой данные содержат следующую информацию:Суммарные брокерские операции
Совокупные обороты
Собственный Капитал
Прибыль
Обороты с облигациями
Обороты с муниципальными облигациями… -
Программа предназначена для переноса информации из файла формы в файл проекта.
После выбора и загрузки формы пользователь выбирает поля для переноса, и указывает, в какую позицию проекта необходимо поместить данные.
При необходимости осуществляется конвертация валют с учётом текущего курса доллара. -
Программа предназначена для еженедельного формирования плана проверок торговых точек.
Функции программы:
выборка из базы данных заданного числа случайных торговых точек, в соответствии с настройками для каждой группы
формирование таблицы (файл Excel) со списком выбранных объектов по шаблону
рассылка созданного файла (в архиве ZIP) по заданному списку адресов электронной…
-
Программа предназначена для формирования таблицы, содержащей имена файлов игр для сотовых телефонов.
В исходной таблице содержатся данные о всех моделях сотовых телефонов различных брендов.
Цель макроса — сформировать список имён файлов .jar для новой игры, дополнив его столбцами с производителем и моделью аппарата.
pablo Пользователь Сообщений: 10 |
Подскажите, пожалуйста, каким приемом можно редактировать большое количество файлов в exel? Например, нужно во всех файлах. xlsx, лежащих в одной папке проставить значение ячейки а1= 10 и закрасить в желтый цвет. |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
Перебрать циклом все файлы в папке и выполнить для каждого нужные операции. Вопрос перебора файлов обсуждался неоднократно. Один из вариантов можно найти в разделе «Приемы» |
pablo Пользователь Сообщений: 10 |
Я там так и не нашел нужного примера, только вот этот http://www.planetaexcel.ru/techniques/12/45/ но это немного не то, т.к. все действия происходят в уже открытом документе. А как это сделать чтобы файлы xlsx. открывались, с ними происходили действия в цикле и они закрывались? |
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#4 02.04.2013 14:40:38
Скорей всего — написать макрос, самому, или найти готовый, или заказать… «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
||
pablo Пользователь Сообщений: 10 |
Z, т.е. шаблонов работы с несколькими файлами xls не существует? |
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
Шаблонов — нет, макросы делали. В поиск — пакетная обработка файлов… «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. |
Юрий М Модератор Сообщений: 60585 Контакты см. в профиле |
Вы чуть-чуть промазали со ссылкой: см. на одну выше )) Вот это Только вместо копирования листа — Ваши действия. Но сам процесс перебора файлов должен Вам подойти. |
EducatedFool Пользователь Сообщений: 3632 |
#8 02.04.2013 18:13:29 Вот есть пример обработки файлов в цикле: http://excelvba.ru/code/CombineFiles Надо совсем немного поменять: 1) вместо
написать
2) заменить
на
3) заменить
на
|
||||||||||||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#9 02.04.2013 18:48:33 Практически готовое решение: Просмотреть все файлы в папке Остается только заменить вписываемое в ячейку значение и добавить именение заливки. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Электронная
таблица
(в том числе и Excel) — это интерактивная
компьютерная программа, основное рабочее
поле которой состоит из набора строк и
столбцов. Они отображаются на экране в
специальном окне, которое можно
прокручивать вверх и вниз, вправо и
влево. Область, находящаяся на пересечении
строки и столбца, называется ячейкой.
В ячейке может находиться число, текст
или формула. С помощью формул можно
выполнять вычисления, в которых
используются значения, содержащиеся в
других ячейках. Имеется возможность
копировать и перемещать ячейки, а также
изменять содержащиеся в них формулы.
Электронную
таблицу можно сохранить в файле для
дальнейшего использования или удалить,
если она больше не нужна. Ячейки
электронной таблицы можно форматировать
самыми разными способами и распечатывать
для ведения документации. Кроме того,
отдельные группы ячеек с числами можно
использовать для создания диаграмм или
карт.
Наиболее
важным преимуществом электронной
таблицы является то, что при изменении
содержимого какой-либо ячейки, используемой
в формуле, результат будет автоматически
пересчитываться. Это означает, что, если
вы создадите электронную таблицу с
определенными формулами, то, внеся в
нее небольшие изменения, сможете
использовать ее и в других случаях.
Кроме
обработки и анализа табличных данных,
Excel способен:
-
подавать
данные в наглядной графической форме
в виде гистограмм, графиков и др.; -
работать
со списками (базами данных) — создавать,
форматировать и сортировать списки,
проводить поиск и выбор их элементов
за заданными критериями — авто фильтрами; -
оперативно
анализировать экономическую деятельность
организаций, предприятий, бирж, банков
и т.п.; -
оказывать
содействие принятию правильных решений; -
проводить
обмен данными с другими программами и
прибавлениями по технологии OLE; -
формировать
сводные таблицы, отчеты и карты с
географической привязкой данных; -
создавать
макросы, то есть макрокоманды, которые
используются для автоматизации решения
процедур и задач, которые часто
повторяются, выполнять ряд других
функций; -
взаимодействует
с такими программами — приложениями,
которые поддерживают технологию OLE;
5.1. Рабочая книга и листы Общие сведения
Книга в Microsoft
Excel представляет собой файл, используемый
для обработки и хранения данных. Каждая
книга может состоять из нескольких
листов, поэтому в одном файле можно
поместить разнообразные сведения и
установить между ними необходимые
связи. Она представляет собой электронный
эквивалент папки-скоросшивателя. При
запуске Microsoft Excel создается новая рабочая
книга.
Листы служат для организации
и анализа данных. Лист представляет
собой сетку из строк и столбцов. Каждая
ячейкаобразуется пересечением
строки и столбца и имеет свой уникальный
адрес или ссылку. Например, ячейка,
находящаяся на пересечении столбцаВи строки5, имеет адресВ5. Эти
адреса используются при записи формул
или ссылках на ячейки. Наибольший размер
листа — 65536 строк и 256 столбцов.
Можно вводить и изменять
данные одновременно на нескольких
листах, а также выполнять вычисления
на основе данных из нескольких листов.
Имена листов отображаются на ярлычках
в нижней части окна книги. Для перехода
с одного листа на другой следует щелкнуть
мышью на соответствующем ярлычке.
Примечание. Если ярлычки
листов не отображаются в нижней части
экрана, то необходимо выбрать командуПараметрыв менюСервиси на
вкладкеВидустановить флажокЯрлычки листов.
Соседние файлы в папке Лекции
- #
- #
- #
- #
- #
11.04.20151.22 Mб45ООП в С.ppt
Открывайте, просматривайте, редактируйте Excel онлайн бесплатно.
Питаться от
aspose.com
&
aspose.cloud
Создайте новый файл Excel из галереи шаблонов:
Расширять
Personal transactions list
Monthly Vehicle Payment Calculator
Calorie Fat Percentage Log
Annual Employee Turnover Calculator
Добавить это приложение в закладки
Нажмите Ctrl + D, чтобы добавить эту страницу в избранное, или Esc, чтобы отменить действие.
Отправьте ссылку для скачивания на
Отправьте нам свой отзыв
Ой! Произошла ошибка.
Недопустимый файл. Убедитесь, что загружается правильный файл.
Ошибка успешно зарегистрирована.
Вы успешно сообщили об ошибке. Вы получите уведомление по электронной почте, когда ошибка будет исправлена.
Нажмите эту ссылку, чтобы посетить форумы.
Немедленно удалите загруженные и обработанные файлы.
Вы уверены, что хотите удалить файлы?
Введите адрес
Время на прочтение
7 мин
Количество просмотров 312K
Приветствую всех.
В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.
VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.
Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.
Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.
Поэтому, увы, будем учить Visual Basic.
Чуть-чуть подготовки и постановка задачи
Итак, поехали. Открываем Excel.
Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.
Появилась вкладка.
Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):
То есть требуется, чтобы было как минимум две группы, по которым можно объединить товары (в нашем случае это будут Тип и Производитель — в таком порядке). Для того, чтобы предложенный мною алгоритм работал корректно, отсортируйте товары так, чтобы товары из одной группы стояли подряд (сначала по Типу, потом по Производителю).
Результат, которого хотим добиться, выглядит примерно так:
Разумеется, если смотреть прайс только на компьютере, то можно добавить фильтры и будет гораздо удобнее искать нужный товар. Однако мы хотим научится кодить и задача вполне подходящая, не так ли?
Кодим
Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».
И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».
Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:
Sub FormatPrice()End Sub
Напишем Hello World:
Sub FormatPrice()
MsgBox "Hello World!"
End Sub
И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.
Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.
Примеры синтаксиса
' Процедура. Ничего не возвращает
' Перегрузка в VBA отсутствует
Sub foo(a As String, b As String)
' Exit Sub ' Это значит "выйти из процедуры"
MsgBox a + ";" + b
End Sub' Функция. Вовращает Integer
Function LengthSqr(x As Integer, y As Integer) As Integer
' Exit Function
LengthSqr = x * x + y * y
End FunctionSub FormatPrice()
Dim s1 As String, s2 As String
s1 = "str1"
s2 = "str2"
If s1 <> s2 Then
foo "123", "456" ' Скобки при вызове процедур запрещены
End IfDim res As sTRING ' Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
' Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ' Конвертация чего угодно в String
If i = 5 Then Exit For
Next iDim x As Double
x = Val("1.234") ' Парсинг чисел
x = x + 10
MsgBox xOn Error Resume Next ' Обработка ошибок - игнорировать все ошибки
x = 5 / 0
MsgBox xOn Error GoTo Err ' При ошибке перейти к метке Err
x = 5 / 0
MsgBox "OK!"
GoTo ne
Err:
MsgBox
"Err!"
ne:
On Error GoTo 0 ' Отключаем обработку ошибок
' Циклы бывает, какие захотите
Do While True
Exit DoLoop 'While True
Do 'Until False
Exit Do
Loop Until False
' А вот при вызове функций, от которых хотим получить значение, скобки нужны.
' Val также умеет возвращать Integer
Select Case LengthSqr(Len("abc"), Val("4"))
Case 24
MsgBox "0"
Case 25
MsgBox "1"
Case 26
MsgBox "2"
End Select' Двухмерный массив.
' Можно также менять размеры командой ReDim (Preserve) - см. google
Dim arr(1 to 10, 5 to 6) As Integer
arr(1, 6) = 8Dim coll As New Collection
Dim coll2 As Collection
coll.Add "item", "key"
Set coll2 = coll ' Все присваивания объектов должны производится командой Set
MsgBox coll2("key")
Set coll2 = New Collection
MsgBox coll2.Count
End Sub
Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.
Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.
Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.
Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.
Надеюсь, что этого Вам хватит, чтобы не пугаться кода и самостоятельно написать какое-нибудь домашнее задание по информатике. По ходу поста я буду ненавязчиво знакомить Вас с новыми конструкциями.
Кодим много и под Excel
В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.
Sub FormatPrice()
Sheets("result").Cells.Clear
Sheets("data").Activate
End Sub
Работа с диапазонами ячеек
Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.
Примеры работы с Range
Sheets("result").Activate
Dim r As Range
Set r = Range("A1")
r.Value = "123"
Set r = Range("A3,A5")
r.Font.Color = vbRed
r.Value = "456"
Set r = Range("A6:A7")
r.Value = "=A1+A3"
Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:
- Считали группы из очередной строки.
- Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
- Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
- После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.
Для упрощения работы рекомендую определить следующие функции-сокращения:
Function GetCol(Col As Integer) As String
GetCol = Chr(Asc("A") + Col)
End FunctionFunction GetCellS(Sheet As String, Col As Integer, Row As Integer) As Range
Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End FunctionFunction GetCell(Col As Integer, Row As Integer) As Range
Set GetCell = Range(GetCol(Col) + CStr(Row))
End Function
Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».
Глобальные переменные
Option Explicit ' про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3
FormatPrice
Sub FormatPrice()
Dim I As Integer ' строка в data
CurRow = 1
Dim Groups(1 To GroupsCount) As String
Dim PrGroups(1 To GroupsCount) As String
Sheets(
"data").Activate
I = 2
Do While True
If GetCell(0, I).Value = "" Then Exit Do
' ...
I = I + 1
Loop
End Sub
Теперь надо заполнить массив Groups:
На месте многоточия
Dim I2 As Integer
For I2 = 1 To GroupsCount
Groups(I2) = GetCell(I2, I)
Next I2
' ...
For I2 = 1 To GroupsCount ' VB не умеет копировать массивы
PrGroups(I2) = Groups(I2)
Next I2
I = I + 1
И создать заголовки:
На месте многоточия в предыдущем куске
For I2 = 1 To GroupsCount
If Groups(I2) <> PrGroups(I2) Then
Dim I3 As Integer
For I3 = I2 To GroupsCount
AddHeader I3, Groups(I3)
Next I3
Exit For
End If
Next I2
Не забудем про процедуру AddHeader:
Перед FormatPrice
Sub AddHeader(Ty As Integer, Name As String)
GetCellS("result", 1, CurRow).Value = Name
CurRow = CurRow + 1
End Sub
Теперь надо перенести всякую информацию в result
For I2 = 0 To DataCount - 1
GetCellS("result", I2, CurRow).Value = GetCell(I2, I)
Next I2
Подогнать столбцы по ширине и выбрать лист result для показа результата
После цикла в конце FormatPrice
Sheets("Result").Activate
Columns.AutoFit
Всё. Можно любоваться первой версией.
Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:
Sub AddHeader(Ty As Integer, Name As String)
Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow)).Merge
' Чтобы не заводить переменную и не писать каждый раз длинный вызов
' можно воспользоваться блоком With
With GetCellS("result", 0, CurRow)
.Value = Name
.Font.Italic = True
.Font.Name = "Cambria"
Select Case Ty
Case 1 ' Тип
.Font.Bold = True
.Font.Size = 16
Case 2 ' Производитель
.Font.Size = 12
End Select
.HorizontalAlignment = xlCenter
End With
CurRow = CurRow + 1
End Sub
Уже лучше:
Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:
Поэтому чуть-чуть меняем код с добавлением стиля границ:
Sub AddHeader(Ty As Integer, Name As String)
With Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow))
.Merge
.Value = Name
.Font.Italic = True
.Font.Name = "Cambria"
.HorizontalAlignment = xlCenterSelect Case Ty
Case 1 ' Тип
.Font.Bold = True
.Font.Size = 16
.Borders(xlTop).Weight = xlThick
Case 2 ' Производитель
.Font.Size = 12
.Borders(xlTop).Weight = xlMedium
End Select
.Borders(xlBottom).Weight = xlMedium ' По убыванию: xlThick, xlMedium, xlThin, xlHairline
End With
CurRow = CurRow + 1
End Sub
Осталось лишь добится пропусков перед началом новой группы. Это легко:
В начале FormatPrice
Dim I As Integer ' строка в data
CurRow = 0 ' чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String
В цикле расстановки заголовков
If Groups(I2) <> PrGroups(I2) Then
CurRow = CurRow + 1
Dim I3 As Integer
В точности то, что и хотели.
Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.
Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.
Спасибо за внимание.
Буду рад конструктивной критике в комментариях.
UPD: Перезалил пример на Dropbox и min.us.
UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.