FormulaCamp
Пройдено
14. Office Scripts и Power Automate · Power Automate · 20 мин

4. Параметры скриптов и возврат результата

Урок 4 из 6
Задание 1 из 4
  1. В F1 введите значение параметра threshold, с которым поток запускает скрипт.

Теория урока

Скрипт становится универсальным, если значения не зашиты в код, а приходят параметрами: после workbook в main можно объявить свои аргументы с типами string, number, boolean. Параметр со знаком ? необязательный. При запуске из Power Automate для каждого параметра в действии «Запуск скрипта» (Run script) появляется своё поле.

Скрипт может и вернуть результат через return — число, текст, массив или объект. Поток получает его как выходное значение и может, например, вставить в письмо.

function main(workbook: ExcelScript.Workbook, threshold: number, label: string): number {
  const sheet = workbook.getWorksheet("Клиенты");
  const values = sheet.getRange("B2:B7").getValues();
  let count = 0;
  const marks = values.map(r => {
    const hit = (r[0] as number) >= threshold;
    if (hit) count++;
    return [hit ? label : "—"];
  });
  sheet.getRange("C2:C7").setValues(marks);
  return count;               // вернётся в поток Power Automate
}

Поток запускает скрипт с параметрами threshold = 50000 и label = VIP. Повторите это на листе: параметры положите в ячейки, а формула пусть ссылается на них — это тот же принцип, что «не зашивать числа в формулу».

При запуске из потока у файла нет «активного» пользователя, поэтому обращайтесь к листам по имени (getWorksheet), а не к выделению или активному листу.

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

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

1. Как объявить скрипт с текстовым параметром city?
2. Что появится в действии Power Automate «Запуск скрипта» для скрипта main(workbook, threshold: number, label: string)?
3. Скрипт заканчивается строкой return count; Где можно использовать это значение?
4. Что означает знак ? в main(workbook: ExcelScript.Workbook, limit?: number)?
5. Скрипт для потока начинается с workbook.getActiveWorksheet(). Что лучше сделать?

Практика — в Pro

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