Добавить в корзинуПозвонить
Найти в Дзене

Так а как же получить аргумент, который передан в функцию

Так а как же получить аргумент, который передан в функцию? Просто: берем активную ячейку, вытаскиваем формулу как текст и регуляркой достаём то, что внутри скобок. Вуаля 👇 function воскресенье(a) { // Получаем активную таблицу const sh = SpreadsheetApp.getActive(); // Берём адрес активного диапазона (в котором введена формула), например "A1" const rangeA1 = sh.getActiveRange().getA1Notation(); // По адресу получаем саму формулу из ячейки, где стоит пользовательская функция // Например: "=воскресенье(C1:C2)" const formula = sh.getRange(rangeA1).getFormula(); /* Возвращаем строку с тремя частями: 1) сама формула, как она написана в ячейке 2) переданный аргумент (вытаскиваем всё, что внутри скобок с помощью RegExp) формула.match(/\((.+?)\)/)?.[1] → ищет первую группу в скобках ?. — это оператор "optional chaining", чтобы не было ошибки, если нет совпадения 3) значения, которые реально пришли в функцию (в параметр a) */ return 'формула: ' + formula + '\n' + 'переданный аргумент: ' +

Так а как же получить аргумент, который передан в функцию?

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

Вуаля 👇

function воскресенье(a) {

// Получаем активную таблицу

const sh = SpreadsheetApp.getActive();

// Берём адрес активного диапазона (в котором введена формула), например "A1"

const rangeA1 = sh.getActiveRange().getA1Notation();

// По адресу получаем саму формулу из ячейки, где стоит пользовательская функция

// Например: "=воскресенье(C1:C2)"

const formula = sh.getRange(rangeA1).getFormula();

/* Возвращаем строку с тремя частями:

1) сама формула, как она написана в ячейке

2) переданный аргумент (вытаскиваем всё, что внутри скобок с помощью RegExp)

формула.match(/\((.+?)\)/)?.[1] → ищет первую группу в скобках

?. — это оператор "optional chaining", чтобы не было ошибки, если нет совпадения

3) значения, которые реально пришли в функцию (в параметр a)

*/

return 'формула: ' + formula + '\n'

+ 'переданный аргумент: ' + formula.match(/\((.+?)\)/)?.[1] + '\n'

+ 'значения: ' + a;

};

Завтра, 1 сентября, стартует наш интенсив 🚀

Будут очень практические вещи:

— как автоматически собирать данные из таблиц в Google Docs,

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

— и много других рабочих кейсов.

💰 Стоимость: 75 000

👉 со скидкой 10% — 67 500

👉 для участников чата — 52 500 (-30%)

📌 Подробнее про интенсив: https://dzen.ru/media/id/5df6458a1e8e3f00acffb5f8/skripty-na-intensive-navyki-kotorye-ekonomiat-chasy-raboty-i-prinosiat-dengi-68a8214396c86428333ff6d8

❓Вопросы и запись: @namokonov

Приходи, мы тебя ждем! ✨ Запись открыта ещё несколько дней.