FormulaCamp
Пройдено
13. VBA и макросы · Проект · 30 мин

7. Проект: макрос отчёта

Урок 7 из 7
Задание 1 из 5
  1. В D2:D9 — то, что пишет первая строка цикла: цена × количество.

Теория урока

Руководитель передал вам макрос, который каждую неделю собирает отчёт по продажам. Прочитайте его построчно, затем проверьте себя: получите формулами ровно то, что он запишет на лист, и ответьте на вопросы о коде.

Option Explicit

Sub ОтчётПродаж()
    Dim ws As Worksheet
    Dim r As Long, lastRow As Long, bigCount As Long
    Dim total As Double

    Set ws = Worksheets("Лист1")
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False

    For r = 2 To lastRow
        ws.Cells(r, 4).Value = ws.Cells(r, 2).Value * ws.Cells(r, 3).Value
        If ws.Cells(r, 4).Value >= 100000 Then
            ws.Cells(r, 5).Value = "Крупная"
            bigCount = bigCount + 1
        Else
            ws.Cells(r, 5).Value = "Обычная"
        End If
        total = total + ws.Cells(r, 4).Value
    Next r

    ws.Range("H1").Value = total
    ws.Range("H2").Value = bigCount
    ws.Range("H3").Value = Application.WorksheetFunction.Max(ws.Range("D2:D" & lastRow))

    Application.ScreenUpdating = True
    MsgBox "Отчёт готов: " & lastRow - 1 & " строк"
End Sub

Подсказки к чтению: столбец 2 — B (цена), 3 — C (количество), 4 — D (сумма), 5 — E (категория). "D2:D" & lastRow склеивает адрес: при lastRow = 9 получится D2:D9. Сравнение >= включает границу: ровно 100 000 — это «Крупная».

Тренажёр не выполняет макросы и скрипты. Код из урока запускайте в настольном Excel (VBA) или в Excel для Интернета (Office Scripts). Здесь вы учитесь читать код и проверяете себя формулами и тестом.

Проверьте себя

1. Чему равна lastRow для этого листа (данные в A1:A9)?
2. Какой текст покажет MsgBox в конце?
3. Зачем строка Application.ScreenUpdating = False?
4. Почему bigCount не обнуляют перед циклом явно?
5. В лист добавили 10-ю строку продаж. Что нужно поменять в макросе?
6. Какую строку вставить после цикла, чтобы итог в H1 был полужирным?

Практика — в Pro

Живая таблица, проверка заданий и файлы .xlsx во всех 170 уроках. Прогресс хранится в этом браузере; синхронизация между устройствами появится позже.