Аркуш1 в excel что это

VBA-Урок 1. Что такое VBA. Основные понятия.

В данном разделе мы рассмотрим что такое VBA, посколько именно на нем и пишутся макросы.

Что такое VBA?

Объекты (Objects)

Аркуш1 в excel что это. vba1 ua 1. Аркуш1 в excel что это фото. Аркуш1 в excel что это-vba1 ua 1. картинка Аркуш1 в excel что это. картинка vba1 ua 1.

Главный объект это Application, что соответствует самой программе Excel. Далее следует Workbooks (книга), Worksheets (лист), Range (диапазон, или отдельная ячейка). Например, чтобы обратиться к ячейке «A1» на листе нам нужно будет прописать следующий путь с учетом иерархии:

Application.Workbooks(«Архив»).Worksheets(«Аркуш1»).Range(«A1»).

Коллекции (Collections)

Свойства (Properties)

Worksheets(“Sheet1”).Range(“A1”).Value або Worksheets(“Sheet1”).Range(“A1”).Formula

В данном примере, свойство отображает значение, которое введено в ячейку или введенную формулу.

Также, через свойство Formula можно не только получить формулу, но и записать ее:

Методи (Methods)

Теперь давайте рассмотрим, каким образом мы можем управлять содержимым диапазона или ячейки. Для этого в VBA существуют, так-называемые методы (команды «что сделать»). При написании кода методы отделяются от объекта точкой, например:

Range(«A1»).Select или Cells(1, 1).Select

Данный метод указывает выбрать (Select) ячейку «A1».
Далее, давайте, удалим значение в данной ячейке. Для этого напишем следующий код:

Selection.ClearContents

Здесь программа «берет» то, что мы выделили (Selection) и удаляет его содержимое (ClearContents ).

Источник

Первое имя таблицы в новой книге Excel отображается на языке, отличном от языка Office отображения

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Симптомы

Рассмотрим следующий сценарий.

В этом сценарии имя первого листа в книге Excel может отображаться на языке, который отличается от языка отображения в Microsoft Office. Например, если у Office 365 установлен немецкий, английский и польский языки, имя созданного таблицы отображается на немецком языке, несмотря на то, что английский (или польский) за набором display Language.

Аркуш1 в excel что это. display language. Аркуш1 в excel что это фото. Аркуш1 в excel что это-display language. картинка Аркуш1 в excel что это. картинка display language.

Аркуш1 в excel что это. name. Аркуш1 в excel что это фото. Аркуш1 в excel что это-name. картинка Аркуш1 в excel что это. картинка name.

Причина

При создании книги правой кнопкой мыши в папке и выбора > New > Microsoft Excel Worksheet, Windows Explorer создает копию книги с именем Excel12.xlsx из папки системы с именем SHELLNEW в активной папке. Исходный Excel12.xlsx создается в папке SHELLNEW при установке Office, с именем ее листа по умолчанию на языке, который может отличаться от языка отображения.

Обходной путь

Чтобы исправить это поведение, замените исходный Excel12.xlsx в папке SHELLNEW книгой, которую вы создаете на языке вашего выбора и с тем же именем (Excel12.xlsx).

Папка SHELLNEW расположена в следующей папке (в зависимости от версии и архитектуры Excel и ОС):

Для Office 365 32-битных 64-битных Windows

C:\Program Files (x86)\Microsoft Office\root\vfs\Windows\SHELLNEW

Для 64-Office 365 64-битных Windows

C:\Program Files\Microsoft Office\root\vfs\Windows\SHELLNEW

При следующем создании книги правой кнопкой мыши в папке в активной папке будет создана копия нового Excel12.xlsx с выбранным языком.

Если вы добавляете лист, щелкнув «+» в листе Excel, имя листа отображается в соответствии с языком отображения. Поведение, описанное в разделе Симптомы, применяется только к первому листу. Аркуш1 в excel что это. second sheet. Аркуш1 в excel что это фото. Аркуш1 в excel что это-second sheet. картинка Аркуш1 в excel что это. картинка second sheet.

Кроме того, если вы создаете пустую книгу в Excel с помощью экрана Начните или с помощью файла New, первый лист отображается в соответствии с > языком отображения.

Корпорация Майкрософт изучает эту проблему, и опубликует дополнительную информацию в этой статье, когда она станет доступной.

Источник

Аркуш1 в excel что это

Таблицы Excel — очень мощный инструмент. В них больше 470 скрытых функций. Поначалу это пугает: кажется, на то, чтобы разобраться со всем, уйдут годы. На самом деле это не так. Всего десятка функций и горячих клавиш уже хватит для того, чтобы сильно упростить себе жизнь. Расскажем о некоторых из них (скоро стартует второй поток курса «Магия Excel»).

Интерфейс

Настраиваем панель быстрого доступа

Начнем с самого простого — добавления самых часто используемых опций на панель быстрого доступа. Чтобы сделать это, заходите в параметры Excel — «Настроить ленту» — и ищите в параметрах «Панель быстрого доступа».

Аркуш1 в excel что это. image7. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image7. картинка Аркуш1 в excel что это. картинка image7.

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

Другой вариант — просто щелкнуть по инструменту на ленте правой кнопкой мыши и нажать «Добавить…»:

Аркуш1 в excel что это. image12. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image12. картинка Аркуш1 в excel что это. картинка image12.

Перемещаемся по ленте без мышки

Нажмите на Alt. На ленте инструментов появились цифры и буквы — у каждого инструмента на панели быстрого доступа и у каждой вкладки на ленте соответственно:

Аркуш1 в excel что это. image1 6. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image1 6. картинка Аркуш1 в excel что это. картинка image1 6.

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

Аркуш1 в excel что это. image13. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image13. картинка Аркуш1 в excel что это. картинка image13.

Ввод данных

Теперь давайте рассмотрим несколько инструментов для быстрого ввода данных.

Автозамена

Если вам часто нужно вводить какое-то словосочетание, адрес, емейл и так далее — придумайте для него короткое обозначение и добавьте в список автозамены в Параметрах:

Аркуш1 в excel что это. image3 2. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image3 2. картинка Аркуш1 в excel что это. картинка image3 2.

Прогрессия

Если нужно заполнить столбец или строку последовательностью чисел или дат, введите в ячейку первое значение и затем воспользуйтесь этим инструментом:

Аркуш1 в excel что это. image18. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image18. картинка Аркуш1 в excel что это. картинка image18.

Протягивание

Представьте, что вам нужно извлечь какие-то данные из целого столбца или переписать их в другом виде (например, фамилию с инициалами вместо полных ФИО). Задайте Excel одну ячейку с образцом — что хотите получить:

Аркуш1 в excel что это. image8. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image8. картинка Аркуш1 в excel что это. картинка image8.

Выделите все ячейки, которые хотите заполнить по образцу, — и нажмите Ctrl+E. И магия случится (ну, в большинстве случаев).

Аркуш1 в excel что это. image15. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image15. картинка Аркуш1 в excel что это. картинка image15.

Проверка ошибок

Проверка данных позволяет избежать ошибок при вводе информации в ячейки.

Какие бывают типовые ошибки в Excel?

Инструмент проверки данных

Чтобы использовать инструмент проверки данных, нужно выделить ячейки, к которым хотите его применить, выбрать на ленте «Данные» → «Проверка данных» и настроить параметры проверки в диалоговом окне:

Аркуш1 в excel что это. image2 3. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image2 3. картинка Аркуш1 в excel что это. картинка image2 3.

Если в графе «Сообщение об ошибке» вы выбрали вариант «Остановка», то после проверки в ячейки нельзя будет ввести значения, не соответствующие заданному правилу.

Аркуш1 в excel что это. image19. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image19. картинка Аркуш1 в excel что это. картинка image19.

Если же вы выбрали «Предупреждение» или «Сообщение», то при попытке ввести неверные данные будет появляться предупреждение, но его можно будет проигнорировать и все равно ввести что угодно.

Еще неверные данные можно обвести, чтобы точно увидеть, где есть ошибки:

Аркуш1 в excel что это. image9. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image9. картинка Аркуш1 в excel что это. картинка image9.

Аркуш1 в excel что это. image10. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image10. картинка Аркуш1 в excel что это. картинка image10.

Удаление пробелов

Для удаления лишних пробелов (в начале, в конце и всех кроме одного между слов) используйте функцию СЖПРОБЕЛЫ / TRIM. Ее единственный аргумент — текст (ссылка на ячейку с текстом, как правило).

Аркуш1 в excel что это. image22. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image22. картинка Аркуш1 в excel что это. картинка image22.

Если после очистки данных функцией СЖПРОБЕЛЫ или другой обработки вам не нужен исходный столбец, вставьте данные, полученные в отдельном столбце с помощью функций, как значения на место исходных данных, а столбец с формулой удалите:

Аркуш1 в excel что это. image14. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image14. картинка Аркуш1 в excel что это. картинка image14.

Дата и время

За любой датой в Excel скрывается целое число. Датой его делает формат.

Аналогично со временем: одна единица — это день, а часть единицы (число от 0 до 1) — время, то есть часть дня.

Это не значит, что так имеет смысл вводить даты и время в ячейки, вводите их в любом из стандартных форматов — Excel сразу отформатирует их как даты:

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

Аркуш1 в excel что это. image11. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image11. картинка Аркуш1 в excel что это. картинка image11.

Прибавить к дате число — и получить дату, которая наступит через соответствующее количество дней.

Аркуш1 в excel что это. image4 3. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image4 3. картинка Аркуш1 в excel что это. картинка image4 3.

Поиск и подстановка значений

Функция ВПР / VLOOKUP

Функция ВПР / VLOOKUP (вертикальный просмотр) нужна, чтобы связать несколько таблиц — «подтянуть» данные из одной в другую по какому-то ключу (например, названию товара или бренда, фамилии сотрудника или клиента, номеру транзакции).

=ВПР (что ищем; таблица с данными, где «что ищем» должно быть в первом столбце; номер столбца таблицы, из которого нужны данные; [интервальный просмотр])

У нее есть два режима работы: интервальный просмотр и точный поиск.

Интервальный просмотр — это поиск интервала, в который попадает число. Если у вас прогрессивная шкала налога или скидок, нужно конвертировать оценку из одной системы в другую и так далее — используется именно этот режим. Для интервального просмотра нужно пропустить последний аргумент ВПР или задать его равным единице (или ИСТИНА).

Аркуш1 в excel что это. image20. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image20. картинка Аркуш1 в excel что это. картинка image20.

В большинстве случаев мы связываем таблицы по текстовым ключам — в таком случае нужно обязательно явным образом указывать последний аргумент «интервальный_просмотр» равным нулю (или ЛОЖЬ). Только тогда функция будет корректно работать с текстовыми значениями.

Аркуш1 в excel что это. image23. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image23. картинка Аркуш1 в excel что это. картинка image23.

Функции ПОИСКПОЗ / MATCH и ИНДЕКС / INDEX

У ВПР есть существенный недостаток: ключ (искомое значение) обязан быть в первом столбце таблицы с данными. Все, что левее этого столбца, через ВПР «подтянуть» невозможно.

Функция ПОИСКПОЗ / MATCH определяет порядковый номер значения в диапазоне. Ее синтаксис:

=ПОИСКПОЗ (что ищем; где ищем ; 0)

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

ИНДЕКС / INDEX выполняет другую задачу — возвращает элемент по его номеру.

=ИНДЕКС(диапазон, из которого нужны данные; порядковый номер элемента)

Соответственно, мы можем определить номер строки, в котором находится искомое значение, с помощью ПОИСКПОЗ. А затем подставить этот номер в ИНДЕКС на место второго аргумента, чтобы получить данные из любого нужного нам столбца.

Получается следующая конструкция:

=ИНДЕКС(диапазон, из которого нужны данные; ПОИСКПОЗ (что ищем; где ищем ; 0))

Аркуш1 в excel что это. image5 1. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image5 1. картинка Аркуш1 в excel что это. картинка image5 1.

Оформление

Нужно оформить ячейки в книге Excel в едином стиле? Для этого есть одноименный инструмент — «Стили».

Аркуш1 в excel что это. image16. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image16. картинка Аркуш1 в excel что это. картинка image16.

На ленте инструментов нажмите на «Стили ячеек» и выберите подходящий. Он будет применен к выделенным ячейкам:

Аркуш1 в excel что это. image17. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image17. картинка Аркуш1 в excel что это. картинка image17.

А самое главное — если вы применили стиль ко многим ячейкам (например, ко всем заголовкам на 20 листах книги Excel) и захотели что-то переделать, щелкните правой кнопкой мыши и нажмите «Изменить». Изменения будут применены ко всем нужным ячейкам в документе.

Аркуш1 в excel что это. image6 1. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image6 1. картинка Аркуш1 в excel что это. картинка image6 1.

На курсе «Магия Excel» будет два модуля — для новичков и продвинутых. Записывайтесь →

Источник

Автоматизация рутины в Microsoft Excel при помощи VBA

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

Аркуш1 в excel что это. a762f9d01ef454c166b85e0794cbd8e4. Аркуш1 в excel что это фото. Аркуш1 в excel что это-a762f9d01ef454c166b85e0794cbd8e4. картинка Аркуш1 в excel что это. картинка a762f9d01ef454c166b85e0794cbd8e4.

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 панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

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

Результат, которого хотим добиться, выглядит примерно так:

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Разумеется, если смотреть прайс только на компьютере, то можно добавить фильтры и будет гораздо удобнее искать нужный товар. Однако мы хотим научится кодить и задача вполне подходящая, не так ли?

Кодим

Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Напишем Hello World:

Sub FormatPrice()
MsgBox «Hello World!»
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

Dim 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 i

Dim x As Double
x = Val( «1.234» ) ‘ Парсинг чисел
x = x + 10
MsgBox x

On Error GoTo Err ‘ При ошибке перейти к метке Err
x = 5 / 0
MsgBox «OK!»
GoTo ne

ne:
On Error GoTo 0 ‘ Отключаем обработку ошибок

‘ Циклы бывает, какие захотите
Do While True
Exit Do

Loop ‘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

Грабли-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, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As Integer ) As String
GetCol = Chr(Asc( «A» ) + Col)
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

Теперь надо заполнить массив Groups:

На месте многоточия

И создать заголовки:

На месте многоточия в предыдущем куске

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

Теперь надо перенести всякую информацию в result

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets( «Result» ).Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Select 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

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В начале 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

Аркуш1 в excel что это. image loader. Аркуш1 в excel что это фото. Аркуш1 в excel что это-image loader. картинка Аркуш1 в excel что это. картинка image loader.

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *