Vba excel примеры: Excel примеры vba

Анализы и отчеты в Excel с описанием их формирования


Построение финансовых анализов для оценки деятельности бизнеса и инвестиционных проектов. Формирование отчетов и бланков в Excel для бухгалтерии, маркетингового отдела, склада и других структур предприятий.

Как сделать график отпусков в Excel скачать бесплатно шаблон.
Как автоматически составить график отпусков с определенными условиями для контроля количества сотрудников на работе? Удобный и наглядный график для планирования отпуска сотрудников фирмы.

Программа для расчета распила бревна в Excel скачать бесплатно.
Рациональный расчет экономного распила бревен для минимального объема отходов. Как посчитать распил бревна при минимальных затратах древесины?

Расчет скользящей средней в Excel и прогнозирование.
Для расчета скользящей средней применяется функция СРЗНАЧ и инструмент Скользящее среднее надстройки пакета анализа данных. Порядок использования возможностей программы и составление прогнозов.



Расчет IRR в Excel с помощью функций и графика.
Для анализа инвестиционного проекта требуется расчет внутренней нормы доходности (ВНД, IRR). Формула и пример на графике, встроенные функции. Графический метод расчета показателя.

Расчет НМЦК в Excel начальной максимальной цены контракта.
Обоснование НМЦК — обязательное условие участия в государственных торгах. Порядок определения НМЦК, особенности, формула и пример расчета начальной (максимальной) цены контракта.

Расчет полной стоимости кредита в Excel по новой формуле.
Пример расчета ПСК по новой формуле. За рубежом она используется давно для подсчета APR. Уравнение формулы и разбор его составляющих.

Расчет эффективной процентной ставки по кредиту в Excel.
Расчет эффективной ставки по кредиту, лизингу и ОВГЗ производится с помощью функций ЭФФЕКТ, ВНД, ЧИСТВНДОХ, БС и др. Рассмотрим на примерах, как считаются реальные проценты.

Расчет KPI в Excel примеры и формулы.
KPI ключевые показатели эффективности оценивают результат выполняемой работы. На основе индексов часто строится система оплаты труда. Формулы, пример таблицы и матрицы KPI.

Коэффициент вариации: формула и расчет в Excel и интерпретация результатов.
Коэффициент вариации помогает сопоставить ожидаемую доходность активов и риск. Показатель полезен для финансовых аналитиков.

Коэффициент парной корреляции в Excel.
Коэффициент корреляции (парный коэффициент корреляции) позволяет обнаружить взаимосвязь между рядами значений. Как рассчитать коэффициент парной корреляции? Построение корреляционной матрицы.


1
2
3
4
5
6
7




VBA For Each и For Next примеры в статье на сайте ExcelPedia

Итог: циклы For Next — одни из самых мощных методов VBA для автоматизации общих задач в Excel. В этой статье объясняется, как работает цикл, повторяющий действия над коллекцией элементов, что экономит нам массу времени.

Уровень мастерства: Средний

Содержание

  1. Сила циклов VBA
  2. Как работает цикл For Next?
  3. Два типа циклов For Next
  4. The For Each Next Loop: цикл по коллекции элементов
  5. В каком порядке работает цикл For Each?
  6. Предметы / объекты НЕ выбираются в цикле
  7. The Next Loop: циклы через набор чисел
  8. Обратный цикл
  9. Как остановить цикл раньше
  10. Переменная не требуется после ключевого слова Next
  11. Примеры макросов VBA для циклов
  12. Какую задачу хотите зациклить вы?

Сила циклов VBA

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

Можете ли вы вспомнить несколько задач, в которых вам
приходилось повторять один и тот же процесс снова и снова?

Эти задачи чрезвычайно трудоемкие и скучные!

К счастью, выход есть. Мы можем использовать циклы в наших
макросах VBA, чтобы очень быстро повторять действия. Задачи, выполнение которых
вручную может занять несколько часов, могут быть выполнены за несколько секунд
с помощью цикла.

Цикл For Next — это наиболее распространенный тип цикла,
который помогает нам выполнять эти повторяющиеся задания. В этой статье мы
рассмотрим два типа For Next Loops.

Загрузите файл примера

Загрузите бесплатный файл Excel, содержащий примеры макросов
с помощью цикла For Next.

For Next Loop VBA Macro Examples.xlsm (79.0 KB)

Скачать PDF версию статьи на английском для печати.

The-For-Next-and-For-Each-Loops-Explained-for-VBA-ExcelСкачать

Как работает цикл For Next?

Цикл For Next позволяет нам просматривать коллекцию, элементами которой могут быть объекты или списки чисел.

Примеры коллекций:

  • Клетки в ассортименте.
  • Рабочие листы в рабочей тетради.
  • Открытые рабочие тетради на компьютере.
  • Сводные таблицы на листе.
  • Сводные поля в сводной таблице.
  • Формы на листе.
  • И любой другой объект, с которым вы взаимодействуете в Excel.

Задача цикла For Next Loop состоит в том, чтобы выполнять
одинаковые действия (строки кода) для каждого элемента в коллекции.

В приведенном ниже примере содержится цикл For Next, который
проходит по каждому листу в книге и отображает каждый лист. Цикл начинается с
первого элемента в коллекции (первый лист в рабочей книге) и выполняет строку
кода между строками For и Next для каждого элемента в коллекции (каждый лист в
рабочей книге).

Sub Unhide_Multiple_Sheets()
Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        ws.Visible = xlSheetVisible
    Next ws
End Sub

Конечно, мы можем использовать логические операторы, такие как операторы If, для проверки свойств и условий перед выполнением действий.

Следующий макрос отображает только те листы, которые имеют фразу «ABC Global Co.» в ячейке A1 каждого листа, и скрывает все остальные листы.

Sub Unhide_Report_Sheets()
Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Range("A1").Value = "ABC Global Co." Then
            ws.Visible = xlSheetVisible
        Else
            ws.Visible = xlSheetHidden
        End If
    Next ws
End Sub

Два типа циклов For Next

Действительно, существуют два типа For Next Loops.

  1. For Each Next
    Loops циклически просматривает коллекцию элементов.
  2. For Next Loops
    цикл через набор чисел.

Давайте посмотрим, как работает
каждый.

The For Each Next Loop

: цикл по коллекции элементов

Как мы видели выше, цикл «The For Each Next Loop» позволяет нам перебирать коллекцию предметов или объектов. Это, наверное, самый распространенный цикл, который мы используем в Excel, потому что мы работаем с коллекциями объектов. Опять же, эти коллекции представляют собой ячейки в диапазоне, рабочие таблицы в рабочей книге, сводные таблицы в рабочей таблице и т.д.

Мы будем использовать пример написания цикла «For Each Next Loop», чтобы просмотреть все рабочие листы в рабочей книге.

Существует четыре основных шага для написания цикла For Each Next в VBA:

  1. Объявите переменную для объекта.
  2. Напишите для каждой строки переменную и коллекцию
    ссылок.
  3. Добавьте строку (и) кода для повтора для каждого
    элемента в коллекции.
  4. Напишите следующую строку, чтобы закрыть цикл.

Давайте рассмотрим каждый из этих шагов подробно.

Шаг 1 — объявить переменную для объекта

Сначала нам нужно объявить переменную, которая будет
временно хранить ссылку на объект.

Строка Dim в верхней части макроса объявляет переменную, как объект. В этом случае объект является рабочим листом. Мы можем создать любое имя переменной, если захотим, если оно не совпадает с другой ссылкой в VBA. «Ws» — наиболее распространенное имя переменной для объекта листа, но вы можете изменить его.

Dim ws As Worksheet

Шаг 2 — Для каждой строки

Далее мы напишем оператор For Each. Это первая строка кода в цикле.

For Each ws In ActiveWorkbook.Worksheets

Первые два слова For Each. Затем мы вводим имя переменной, за которым следует слово In. Наконец, мы указываем, где располагается коллекция. В этом случае мы хотим просмотреть все рабочие листы в ActiveWorkbook. Итак, мы набираем ActiveWorkbook.Worksheets. Эта строка ссылается на все рабочие листы в ActiveWorkbook.

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

For Each ws In Workbooks("Book2.xlsx").Worksheets

Просто помните, что рабочая книга, на которую вы ссылаетесь,
должна быть открыта до запуска строки кода For Next. Конечно, мы можем
использовать метод Workbooks. Open, чтобы открыть рабочую книгу.

Шаг 3 — Добавить код для повторения для каждой итерации

После строки «For Each» мы добавляем строку(и) кода, которая будет выполняться на каждом листе. В этом примере у нас есть только одна строка кода, которая показывает лист.

ws.Visible = xlSheetVisible

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

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

Set ws = Worksheets(1)

Однако нам НЕ нужна эта строка с циклом For Each Next. Цикл
заботится о настройке переменной для нас для каждой итерации в цикле.

Для первой итерации в цикле ws установлен на Worksheets (1).
На следующей итерации ws устанавливается в Worksheets (2). Это продолжается,
пока цикл перебирает все листы в рабочей книге. Это очень мощно, потому что мы
можем повторно использовать переменную для ссылки на лист в цикле несколько
раз.

Шаг 4 — Next закрывает цикл

Последняя строка кода в цикле — Next.

Next ws

Когда макрос попадает в эту строку кода, он делает две вещи:

  1. Во-первых, он изменяет ссылку на переменную на следующий элемент коллекции. В этом примере переменная ws изменяется для ссылки на следующий лист в рабочей книге.
  2. Во-вторых, он возвращается к выполнению строки кода непосредственно под строкой For Each. Затем он выполняет все строки кода между строками For Each и Next в порядке сверху вниз.

Когда будет достигнут последний элемент в коллекции (рабочий лист в рабочей книге), цикл останавливается, и макрос переходит к следующей строке кода ниже строки Next.

В каком порядке работает цикл For Each?

Цикл For Each Loop всегда начинается с первого элемента в коллекции и переходит к последнему элементу в том порядке, в котором они отображаются в Excel. Это основано на номере индекса предметов в коллекции. Вот несколько примеров порядка выполнения цикла для общих объектов.

  • Рабочие листы. Начинается с первой вкладки листа в рабочей книге и возвращается к последней в том порядке, в котором вкладки отображаются в рабочей книге.
  • Рабочие книги. Начинается с первой открытой книги и циклически повторяется в порядке открытия рабочих книг. Рабочим книгам присваивается порядковый номер по мере их открытия.
  • Клетки: циклы слева направо, затем вниз. Начинается с первой ячейки в диапазоне и возвращается к следующему столбцу в той же строке, затем переходит к следующей строке.
  • Таблицы и сводные таблицы. Начинается с первого объекта, созданного на листе, и циклически повторяется в порядке создания объектов. Этот же принцип действует и для других объектов, которые вы создаете на листах, таких как фигуры, диаграммы, слайсеры и т.д.

Предметы / объекты НЕ выбираются в цикле

Важно отметить, что когда мы перебираем коллекцию объектов, каждый объект НЕ выделяется в Excel.

Цикл создает ссылку на элемент/объект с помощью переменной. Переменная временно установлена на ссылку на объект. Объект НЕ выбран и НЕ обязательно становится активным объектом. Для выбора объекта мы можем использовать методы Select или Activate. Вы также должны убедиться, что объекты родительского объекта выбраны первыми. Ознакомьтесь с моей статьей об объектной модели Excel и иерархии объектов в VBA, чтобы узнать больше об этом.

The Next Loop: циклы через набор чисел

Также можно использовать цикл For Next Loop для просмотра набора чисел. Это может быть полезно, когда мы перебираем элементы управления пользовательской формы, массивы или если мы хотим перебрать коллекцию в обратном направлении.

Основная операция цикла For Next такая же, как и для цикла
For Each. Разница заключается в формате строки For.

Шаг 1 — Объявление переменной для числа

Чтобы перебрать набор чисел, мы сначала должны объявить переменную для целого числа типа данных. Мы можем использовать Integer или Long integer.

Dim i As Long

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

Дополнительное примечание к Long: тип данных Long (целое число) содержит большее число, чем Integer. Это занимает больше памяти, но для современного компьютера это не проблема. Мы можем использовать длинные переменные все время. Буква L выглядит как цифра 1 в VBA, поэтому я теперь использую i в качестве имени переменной, хотя я использую Long в качестве типа данных. Это все зависит от личных предпочтений, и вы можете назвать переменную как хотите.

Шаг 2 — Напишите строку For

Далее мы пишем строку For. Базовая конструкция — это ключевое слово For, за которым следует имя переменной (counter), затем знак равенства, начальное значение To end value.

For i = 1 To 10

Начальные и конечные значения могут быть указаны как числа, или мы можем использовать целочисленные / длинные переменные вместо них.

For i = 1 To ActiveWorkbook.Worksheets.Count

Эта строка кода возвращает количество листов в активной книге. Тем не менее, он не проходит по каждому листу. Цикл просто перебирает набор чисел. Мы должны создать ссылку на лист с переменной счетчика (i) в качестве номера индекса свойства Worksheets. Шаг 3 показывает эту ссылку.

Шаг 3 — Добавить код, который повторяется для каждой итерации

Остальная часть цикла работает так же, как цикл For Each. Мы можем добавить строки между строками For и Next, которые будут выполняться для каждой итерации цикла. Переменная counter может быть использована несколько раз в этих строках кода.

Worksheets(i).Visible = True

Шаг 4 — Строка Next закрывает цикл

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

Next i

Когда макрос запускается, он устанавливает переменную, равную первому числу в строке For. Когда макрос попадает в следующую строку, он добавляет 1 к значению переменной или увеличивает счет. Итак, я = 2 во второй итерации цикла. Он продолжает цикл, пока не будет достигнут последний номер в цикле.

По умолчанию 1 добавляется к счетчику переменных для каждой итерации в цикле. Это называется значением шага, и мы можем контролировать значение каждого шага в счетчике. Значение Step добавляется в конец строки For. Следующая строка добавит 2 к счетчику для каждой итерации в цикле.

For i = 2 To 20 Step 2

Если вы хотите заштриховать все остальные строки на листе, вы можете использовать такой цикл.

Обратный цикл

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

For i = 100 To 1 Step -1

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

Ключевое слово Step не является обязательным. Если вы не укажете его, тогда VBA примет значение шага 1.

Цикл в обратном направлении — это хорошо, если вы удаляете элементы.

Я напишу отдельный пост об этом, но общая идея заключается в том, что когда мы перебираем коллекцию и удаляем элементы, размер коллекции уменьшается при удалении элементов. Цикл обычно выдает ошибку, как только достигает 10-го элемента, когда в коллекции теперь только 9 элементов. Цикл в обратном направлении предотвращает эту потенциальную ошибку.

Как остановить цикл раньше

Обычно цикл перебирает все элементы в коллекции, а затем переходит к следующей строке кода ниже следующей строки. Однако мы можем остановить цикл раньше с помощью оператора Exit For.

Exit For

В следующем макросе оператор Exit For используется для выхода из цикла после того, как первый лист, начинающийся со слова «Отчет», будет найден скрытым.

Sub Unhide_First_Sheet_Exit_For()
' Отображает первый лист, который содержит определенную фразу
' в имени листа, затем выходит из цикла. 
Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
    
        ' Найдите лист, который начинается со слова «Отчет»
        If Left(ws.Name, 6) = "Report" Then
            
            ws.Visible = xlSheetVisible
            
            ' Выход из цикла после того, как первый лист найден
            Exit For
        
        End If
    Next ws
End Sub

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

Переменная не требуется после ключевого слова Next

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

Next ws
Next i

Это НЕ обязательно, и вы можете не увидеть его в других примерах, которые вы найдете в Интернете. Однако мне нравится включать переменную после Next по двум причинам.

  1. Мы можем использовать его при отладке кода,
    чтобы увидеть значение переменной, наведя указатель мыши на переменную, когда
    код остановлен.
  2. Это облегчает понимание того, к какой строке For
    подключена следующая строка. Это особенно верно, когда у вас есть несколько циклов
    или вложенных циклов в ваших макросах.

Поэтому я рекомендую добавить переменную после ключевого слова Next в качестве лучшей практики. Немного дополнительной работы заранее сэкономит время и головную боль в будущем. Доверьтесь мне!

Примеры макросов VBA для циклов

Вот дополнительные статьи с макросами, в которых используется хотя бы один цикл For Next Loop.

3 способа показать несколько листов в учебнике по Excel + VBA

Автоматическое форматирование чисел по умолчанию в сводных таблицах Excel

3 совета, как сохранить и закрыть все открытые файлы книги Excel + макрос

Макрос метрики SUBTOTAL — создание сводной таблицы всех
типов функций

Как добавить оглавление Галерея изображений в файлы Excel

Скрыть и отобразить (отфильтровать) столбцы с помощью
слайсера или раскрывающегося меню фильтра

Фильтрация сводной таблицы или среза по самой последней дате или периоду

Как изменить размер панелей Excel для разных размеров экрана

Преобразование сводной таблицы в формулы SUMIFS + бесплатный макрос VBA

Макрос VBA, чтобы скрыть все столбцы, которые содержат
значение в ячейке

Как повторять задачи с помощью кода VBA — Looping — Отличная статья с большим количеством примеров от моего друга Криса Ньюмана из The Spreadsheet Guru.

Какую задачу хотите зациклить вы?

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

For Next Loop VBA Macro Examples.xlsm (79.0 KB)

Циклы, безусловно, являются промежуточной техникой кодирования, которая вынуждает нас выйти за рамки MacroRecorder. К сожалению, записанный макрос не может создавать петли. Тем не менее, это навык, который вы сможете использовать снова и снова на протяжении всей своей карьеры для автоматизации простых и сложных задач. Понимание того, как использовать циклы, даст вам волшебную силу с Excel.

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

Урок 3: Написание собственного кода VBA

В предыдущем посте мы рассмотрели следующие темы:

Sub Macro1()
Range(«B2»).FormulaR1C1 = «=RC[-1]*2»
End Sub

Что такое Sub?
Чтобы создать подпроцедуру, начните с ключевого слова Sub .

Что такое макрос1?
Это имя макроса. Вы можете дать своему макросу любое имя.

Что такое FormulaR1C1?
Это стиль ссылки на формулу. Средство записи макросов всегда использует стиль ссылок R1C1.

Чем R1C1 отличается от A1?
Вместо букв вы получаете цифры. Числа представляют собой относительное расстояние от текущей ячейки.

A1 — Столбцы, за которыми следует номер строки.
R1C1 — За строками следуют столбцы.

Пример
Давайте рассмотрим простой пример умножения двух столбцов.

Стиль A1

Стиль R1C1

Что означает RC[-2]?

Относится к ячейке на 2 столбца слева от текущей ячейки.

Аналогично, R[3]C[3] — это ячейка на 3 строки вниз и на 3 столбца вправо. R[-2]C[-4] — ячейка на 2 строки вверх и 4 столбца влево.

Положительные числа  – ячейки ниже и/или справа.

Отрицательные числа  — Ячейки выше и/или слева.

Что такое End Sub?
Чтобы завершить подпроцедуру, используйте ключевое слово End Sub .

Где писать код VBA?

Модуль — это область, в которой мы пишем код VBA.

Инструкции:

  1. Открыть книгу Excel
  2. Нажмите ALT + F11 , чтобы открыть базовый визуальный редактор (VBE)
  3. Чтобы вставить модуль, перейдите к  Вставить > Модуль

Чтобы просмотреть модуль, просто дважды щелкните его значок в окне Project Explorer в редакторе VBA.

35 примеров

Ниже приведен список практических примеров, которые помогут вам написать свой первый макрос.

1. Запишите значение в ячейку
Задача: Запишите 12 в ячейку B3

Sub Enteravalue()
Range(«B3»). Value = 12
End Sub

2. Добавьте одно и то же значение в несколько диапазонов

Задача:  Введите 12 в ячейки с B3 по B5 и с C5 по C8.

Sub Entervalues ​​()
Диапазон («B3:B5,C5:C8»). Значение = 12

End Sub

3. Выберите ячейку
Задача:  Выберите ячейку B3

Sub macro1()
Range(«B3»). Select
End Sub

4. Выберите диапазон
Задача:  Выберите диапазон B3:B5

Sub macro2()
Range(«B3:B5»). Select
End Sub

5. Выберите несколько диапазонов
Задача:  Выберите диапазоны B3:B5 и C5:C8

Sub macro3()
Range(«B3:B5,C5:C8»). Select
End Sub

6. Копировать/Вставить
Задача: Скопировать данные из диапазона «B3:B5» и вставить в ячейки, начиная с G3

Sub copypaste()
Range(«B3:B5»).Copy
Range(«G3»).Select
ActiveSheet.Paste
End Sub

Другой способ написать вышеуказанную программу (скопировать паста)

Подкопипаст ()
Range(«B3:B5»).Copy _
Destination:=Range(«G3»)
End Sub

Скопируйте данные из диапазона «B3:B5» и вставьте их в ячейки, начиная с G3

.
Sub copypaste()
Range(«B3:B5»).Copy
Range(«G3»).PasteSpecial Paste:=xlPasteValues ​​
End Sub

8.  Скопируйте все данные с одного листа в другой лист
Задача: Скопируйте все данные с «Листа1» и вставьте их в «Лист2».

Sub fullcopy()
Листов(«Лист1»).UsedRange.Copy
Листов(«Лист2»).Выбрать
Диапазон(«A1»).Выбрать
ActiveSheet.Paste Sub
0 End 9.  Скопируйте всю строку и вставьте ее в другую строку
Задача:  Скопируйте пятую строку из «Листа1» и вставьте ее в седьмую строку того же листа.

Sub integerrow()
Sheets(«Sheet1»).Rows(5).EntireRow.Copy
Rows(7).Select
ActiveSheet.Paste
End Sub

09009 9 Очистить только содержимое
Задача :  Вы хотите очистить только содержимое ячеек (не форматы).

Sub clearcontent()
Range(«A2:B4»).ClearContents
End Sub

11.  Очистить все форматы и значения
Задача :  Вы хотите удалить все форматы и значения из ячеек в дополнение к очистке содержимого ячеек.

Sub clearall()
Range(«A2:B4»). Clear
End Sub

12.  Выбрать самую левую непустую ячейку в строке
Перемещает курсор в крайнюю левую непустую ячейку. пустая ячейка в строке

Sub leftmost()
Selection.End(xlToLeft).Select
End Sub

13.  Выберите самую правую непустую ячейку в строке
Перемещает курсор в самую правую непустую ячейку в строке

Крайний справа()
Selection.End(xlToRight).Select
End Sub

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

Sub lastcell()
Selection.End(xlDown).Select
End Sub

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

Sub firstcell()
Selection. End(xlUp).Select
End Sub

16. Окно сообщений VBA

Синтаксис окна сообщений VBA следующий:

Простое окно сообщений VBA

0
Sub Msg1()
MsgBox «Привет всем»
End Sub

17. Окно сообщений с заголовком

Подсообщение2()
‘Показать окно сообщения с заголовком «Введение»
MsgBox «Привет всем»,  , «Введение»
End Sub

18. Расширенное окно сообщений

Sub Msg3 ()

Затемнение всплывающего окна в виде целого числа

Popup = MsgBox(«Вы лентяй?», vbYesNo, «Отношение пользователя»)

‘Если пользователь нажимает кнопку Да, отображается сообщение

Если всплывающее окно = vbYes, тогда

MsgBox «Спасибо за честный ответ!!»

Еще

‘Если пользователь нажимает кнопку «Нет», отображается сообщение

MsgBox «Отлично!»

Конец, если

End Sub 

В окне сообщения VBA параметр «кнопки» может иметь любое из следующих значений:

18. Как передать значение в окне сообщения

Sub Msg5()
MsgBox «Ваш окончательный счет» & Range(«A2»).Value
End Sub

19. Найти позиционирование активной ячейки

Sub cellpos()
Rowf = ActiveCell.Row
Colf = ActiveCell.Column
MsgBox Rowf & «,» & Colf
End Sub

20. Условные операторы —  ЕСЛИ ТОГДА ИНАЧЕ

Sub Macro1()
Если диапазон («A1») > 100, то
диапазон («B1»). Значение = 1
иначе, если диапазон («A1») > 50, то
диапазон («B1» ) = 0,5
Остальное
Диапазон («B1») = 0
End If
End Sub


Sub Macro11()
Выбор диапазона значений («A1»). Значение
   Case Is > 100
    Range («B1»). Значение = 1
   Case Is > 50 0
«).Value = 0,5

   Case Else
   Range(«B1»).Value = 0
   End Select
End Sub 

22. Как выбрать рабочий лист

Sub slctwrk()
‘Выбрать рабочий лист лист2
Sheet2.Select
End Sub

23.  Как добавить новый лист

Sub macro99()
    Sheets.Add
End Sub

24.  Как переименовать рабочий лист
Следующая программа переименовывает активный лист в «Необработанные данные».

Подмакрос999()
    ActiveSheet.Name = «Необработанные данные»
End Sub

25.  Как удалить рабочий лист
Следующая программа удаляет указанный рабочий лист.

Sub macro100()
     Sheets(«Sheet2»). Удалить
End Sub

26.  Как добавить новую книгу

Sub macro101()
    Workbooks.Add
End Sub

27.  Как сохранить рабочую книгу
Следующая программа сохраняет активную рабочую книгу.

Sub macro102()
   ActiveWorkbook.Save
End Sub

28.  Как сохранить книгу с указанным именем
Следующая программа сохраняет активную книгу с указанным именем.

Sub macro103()
   ActiveWorkbook.SaveAs «FinalFile.xls»
End Sub

29.  Как закрыть книгу
Следующая программа закрывает активную книгу.

Sub macro104()
ActiveWorkbook.Close
Конец Sub

30. Запуск макроса при открытии книги
В Excel есть Auto_Open подпрограмма, которая запрашивает запуск макроса при каждом открытии книги. После ввода следующей программы в модуль окно сообщения «Добро пожаловать в мир Excel» будет появляться каждый раз, когда вы открываете книгу.

Sub Auto_Open()
Msgbox («Добро пожаловать в мир Excel»)
End Sub

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

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

Sub macro107()
Range(«A1»).CurrentRegion.Select
End Sub

  32.  Выбрать текущую область без заголовков

Sub macro108()
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count — 1, tbl.Columns.Count).Select
End Sub

  33.   Как объединить и разъединить ячейки

Sub macro109()
  ‘Объединить свойство
    Range(«A1:A3»). Merge

    ‘UnMerge Property
    Range(«A1:A3»).UnMerge
End Sub

7
34.   Как вставлять и удалять строки

Sub macro999()
    Rows(2).Insert ‘Он вставляет строку в строку 2
    Rows(4).Delete ‘Он удаляет четвертую строку
Конец Sub

35.   Как вставлять и удалять столбцы

Sub macro9999()
   Columns(«B»).Insert  ‘Вставляет столбец в столбец B
   Columns(«D»)..Delete ‘Удаляет столбец D
End Sub

Previous: Record Ваш первый макрос                                   Далее: игра с динамическими диапазонами 

Об авторе:

Deepanshu основал ListenData с простой целью — сделать аналитику простой для понимания и использования. Он имеет более чем 10-летний опыт работы в области науки о данных. За время своего пребывания в должности он работал с глобальными клиентами в различных областях, таких как банковское дело, страхование, частный капитал, телекоммуникации и управление персоналом.

Примеры Excel VBA, примеры макросов Excel и бесплатные загрузки

Одним из лучших способов изучения Excel VBA является изучение примеров кода и примеров . Вот почему мы время от времени публикуем подробные примеры, загружаемые рабочие книги и полные учебные пособия. На этой странице вы можете найти несколько примеров Excel VBA. Нажмите на любую ссылку, чтобы просмотреть полный пример и загрузить рабочую книгу.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

3

3D -танцевальные маятники

A

Автоматизирующие повторяющиеся задачи в VBA

C

Converting Formuls с использованием VBA
.
Объединение данных из разных файлов
Часы и таймер с использованием Excel

D

Динамические диаграммы в Excel VBA
База данных с использованием Excel
Примеры информационной панели — конкурс опроса о зарплатах в Excel

E

Пример информационной панели Excel № 1
Пример информационной панели Excel № 2
Пример информационной панели Excel № 3
Принтер отчетов Excel
Извлечение комментариев к ячейкам
Электронная почта с использованием Excel VBA

F

Получение котировок акций в Excel

Форматирование комментариев к ячейкам

G

Получение более 3 условных форматов
Game – Hurdles challenge in Excel

H

Highlight row & column of selected cell using VBA

I

Introduction to VBA & Excel Macros
Interactive dashboards – Excel & VBA technique roundup

M

Объединение ячеек без потери данных
Перенос данных с одного листа на несколько листов

O

Оптимизация кода VBA

P

Picture Calendar Template
Printing Excel Reports via Word

R

Refresh Pivot Tables
Removing Page Break Lines

S

Sales Analysis Charts using VBA & Excel

Solving Sudoku
Разделить файл Excel на несколько частей
Разделить текст с помощью макросов

T

Приложение списка дел

Твиты из Excel

U

Обновление фильтров отчетов с помощью VBA
Использование объектов в VBA
Использование переменных, условий и циклов

V

Демонстрационное приложение VBA для управления магазином

Venn 9 Диаграммы подробнее о Excel VBA

  • Домашняя страница Excel VBA
  • Примеры Excel VBA
  • Видеоуроки по Excel VBA, Макросы
  • Советы по Excel VBA
  • Пользовательские формы и элементы управления в VBA
  • Книги по Excel VBA
  • Ссылки на Excel VBA
  • Обучение работе с Excel VBA
  • Подпишитесь на нашу новостную рассылку Excel

Получите БЕСПЛАТНУЮ рассылку новостей Excel и Power-BI

Одно письмо в неделю с Excel и Power BI.