Здравствуйте, подскажите идиоту как это работает

Есть код, в гугл таблицах, App Script

const token = "";

function onEdit(e) {

sendTelegram(e)

}

function sendTelegram(e){

var row = e.range.getRow();

var col = e.range.getColumn();

var startRow = 2; // начальная строка

var targetColumn = 9; // столбец, изменения в которых отправляются в телеграмм

var ws = "лист1"; //имя листа

let chatId = "-0000000000";

let Company = e.source.getActiveSheet().getRange(row,6).getValue();

var text = encodeURIComponent(Company)

var currentDate = new Date();

if (col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws){

if(e.source.getActiveSheet().getRange(row,9).getValue() == "да"){

sendText(chatId,Company);

e.source.getActiveSheet().getRange(row,10).setValue(currentDate);

}

}

function sendText(chatId, text, keyBoard) {

let data = {

method: 'post',

payload: {

method: 'sendMessage',

chat_id: String(chatId),

text: text,

parse_mode: 'HTML',

reply_markup: JSON.stringify(keyBoard)

}

}

UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data);

}

}

как можно сделать так, чтоб отправлял не только по 6 столбцу, но ещё и по 4

данный код нашёл на просторах интернета. Кому не жалко, подскажите пожалуйста.

Автор поста оценил этот комментарий

Точно по столбцу, а не по строке? Чёт нейминг сильно смущает)


let Company = e.source.getActiveSheet().getRange(row,6).getValue();

Похоже, значение 6 столбца(?) записывается в переменную Company, затем передаётся в качестве аргумента функции sendText. Т.е. Ваша задача по аналогии получить значение 4 столбца и передать его функции sendText

раскрыть ветку (1)
Автор поста оценил этот комментарий

а, блин, да, вы так и написали

Автор поста оценил этот комментарий

Точно по столбцу, а не по строке? Чёт нейминг сильно смущает)


let Company = e.source.getActiveSheet().getRange(row,6).getValue();

Похоже, значение 6 столбца(?) записывается в переменную Company, затем передаётся в качестве аргумента функции sendText. Т.е. Ваша задача по аналогии получить значение 4 столбца и передать его функции sendText

раскрыть ветку (1)
Автор поста оценил этот комментарий
Передать и 6 и 4, желательно в одно сообщение, пока сделал только в 2 сообщения приходило
показать ответы
Автор поста оценил этот комментарий

Точно по столбцу, а не по строке? Чёт нейминг сильно смущает)


let Company = e.source.getActiveSheet().getRange(row,6).getValue();

Похоже, значение 6 столбца(?) записывается в переменную Company, затем передаётся в качестве аргумента функции sendText. Т.е. Ваша задача по аналогии получить значение 4 столбца и передать его функции sendText

раскрыть ветку (1)
Автор поста оценил этот комментарий
Так, сейчас опишу)
если значение в 9 столбце меняется на "да", то сообщение из 6 столбца отправляется в телегу, надеюсь так более понятно) а то объяснять к сожалению могу плохо
Автор поста оценил этот комментарий

Если не получится - второй костыль.

{цикл


{цикл-1

{процедура бла бла бла бла 6}

конец цикла-1}

{цикл-2

{процедура бла бла бла бла 4}

конец цикла-2}

конец цикла}

раскрыть ветку (1)
Автор поста оценил этот комментарий
Ну по сути первый совет помог, спасибо
показать ответы
Автор поста оценил этот комментарий

Мде :)

Обрати внимание на SendText, запихни туда не только Company, но еще и четвертый столбец.


PS но чет тут твое описание расходится с кодом. Тут изменение по 9 столбцу отправляют содержимое 6 столбца.

раскрыть ветку (1)
Автор поста оценил этот комментарий

const token = "";

function onEdit(e) {

sendTelegram(e)

}

function sendTelegram(e){

var row = e.range.getRow();

var col = e.range.getColumn();

var startRow = 2; // начальная строка

var targetColumn = 9; // столбец, изменения в которых отправляются в телеграмм

var ws = "Лист1"; //имя листа

let chatId = "";

let Company = e.source.getActiveSheet().getRange(row,6).getValue();

let Company1 = e.source.getActiveSheet().getRange(row,4).getValue();

var text = (Company)

var currentDate = new Date();

if (col === targetColumn && row >= startRow && e.source.getActiveSheet().getName() === ws){

if(e.source.getActiveSheet().getRange(row,9).getValue() == "да"){

sendText(chatId,Company);

e.source.getActiveSheet().getRange(row,10).setValue(currentDate);

if(e.source.getActiveSheet().getRange(row,9).getValue() == "да")

sendText(chatId,Company1);

e.source.getActiveSheet().getRange(row,10).setValue(currentDate);

}

}

function sendText(chatId, text, keyBoard) {

let data = {

method: 'post',

payload: {

method: 'sendMessage',

chat_id: String(chatId),

text: text,

parse_mode: 'HTML',

reply_markup: JSON.stringify(keyBoard)

}

}

UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data);

}

}

показать ответы
Автор поста оценил этот комментарий
Да, я менял на 9, а можно чуть подробнее?)
раскрыть ветку (1)
Автор поста оценил этот комментарий
9 это при изменении значения в ячейке этой на да, то текст с 6 отправляется
Автор поста оценил этот комментарий

Мде :)

Обрати внимание на SendText, запихни туда не только Company, но еще и четвертый столбец.


PS но чет тут твое описание расходится с кодом. Тут изменение по 9 столбцу отправляют содержимое 6 столбца.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да, я менял на 9, а можно чуть подробнее?)
показать ответы
Автор поста оценил этот комментарий

{цикл

{процедура бла бла бла бла 6}
конец цикла}


меняем на

{цикл

{процедура бла бла бла бла 6}

{процедура бла бла бла бла 4}

конец цикла}

раскрыть ветку (1)
Автор поста оценил этот комментарий
Сейчас попробую, сек
показать ответы
Автор поста оценил этот комментарий

Копируешь и вставляешь такой же процедурой.
Сперва выдаст 6. Потом 4. Или наоборот, как поставишь. Костыли. Вообще не знаю, что это за язык, но это на любом работает.

У тебя поиск по 6 колонке. Отыскал. Запустил такой же по четвёртой. В чём сложность?

раскрыть ветку (1)
Автор поста оценил этот комментарий
А, ну тут так к сожалению не заработало) надо всё это ещё вписать) вот и ищу как)
показать ответы
Автор поста оценил этот комментарий

только начал изучать , погодишь месячишко другой , глядишь и подсоблю

раскрыть ветку (1)
Автор поста оценил этот комментарий
Тоже начал изучать, правда потому что надо сделать так, чтоб этот код работал)
показать ответы
Автор поста оценил этот комментарий

Я вообще не понимаю, ты не пробовал просто тупо найти в коде цифру "6"?
Берёшь всё, между фигурными скобками, что включало эту цифру. Копируешь в этом же цикле весь объём, заменив цифру 6 на 4. И это, уродливо, но будет работать.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Так надо чтоб было и 6 и 4
показать ответы