Size: a a a

Чат | Google Таблицы и скрипты

2020 March 28

A

Admin in Чат | Google Таблицы и скрипты
Делайте столбец текстовым, это не ifs, а регулярка не может работать с числами

Тоже решается через to_text, принудительно менять в текст
источник

A

Alexander in Чат | Google Таблицы и скрипты
Admin
Делайте столбец текстовым, это не ifs, а регулярка не может работать с числами

Тоже решается через to_text, принудительно менять в текст
спасибо
источник

МБ

Михаил Prayer Броун... in Чат | Google Таблицы и скрипты
Всем привет. нужна помощь со скриптом:

1. Есть у меня таблица, первая колонка - даты, вторая - категории

2. Есть скрипт, взятый, грубо говоря, отсюда (из канала), который в первую колонку автоматом ставит дату
*/
function onEdit(e)
{
 var range = e.range
 if( range.getColumn()==2 && e.value!="" && range.offset(0,-1).getValue() == "" ){
   range.offset(0,-1).setValue(new Date())
 }
}

3. Есть проблема: если вставить во вторую колонку диапазон значений в 2 колонки (т.е. захватить и 3 колонку) - скрипт вставит даты в первую и вторую колонку. Может кто подсказать, как его ограничить?
источник

A

Admin in Чат | Google Таблицы и скрипты
Михаил Prayer Броун
Всем привет. нужна помощь со скриптом:

1. Есть у меня таблица, первая колонка - даты, вторая - категории

2. Есть скрипт, взятый, грубо говоря, отсюда (из канала), который в первую колонку автоматом ставит дату
*/
function onEdit(e)
{
 var range = e.range
 if( range.getColumn()==2 && e.value!="" && range.offset(0,-1).getValue() == "" ){
   range.offset(0,-1).setValue(new Date())
 }
}

3. Есть проблема: если вставить во вторую колонку диапазон значений в 2 колонки (т.е. захватить и 3 колонку) - скрипт вставит даты в первую и вторую колонку. Может кто подсказать, как его ограничить?
источник

МБ

Михаил Prayer Броун... in Чат | Google Таблицы и скрипты
ща посмотрю

я на самом деле код улучшал - добавлял условие, чтобы дата не вставлялась при удалении, к примеру.
ща праверим, насколько этот подойдет)
источник

A

Admin in Чат | Google Таблицы и скрипты
Условие убрать можно или адаптировать под себя, там удаляется при удалении контрольного поля

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

v

volond in Чат | Google Таблицы и скрипты
Михаил Prayer Броун
Всем привет. нужна помощь со скриптом:

1. Есть у меня таблица, первая колонка - даты, вторая - категории

2. Есть скрипт, взятый, грубо говоря, отсюда (из канала), который в первую колонку автоматом ставит дату
*/
function onEdit(e)
{
 var range = e.range
 if( range.getColumn()==2 && e.value!="" && range.offset(0,-1).getValue() == "" ){
   range.offset(0,-1).setValue(new Date())
 }
}

3. Есть проблема: если вставить во вторую колонку диапазон значений в 2 колонки (т.е. захватить и 3 колонку) - скрипт вставит даты в первую и вторую колонку. Может кто подсказать, как его ограничить?
e.range.getsheet().getRange(e.range.getRow(),1)=
источник

VP

Vitaliy P. in Чат | Google Таблицы и скрипты
Mike
Ставите Гугл драйв и он драйв. А в настройках на сайте он драйв подключение синхронизацию.
И получите не синхронизацию данных между файлом экселя И гуглотаблицей, а синронизацию файлов экселя между двух сервисов)
источник

МБ

Михаил Prayer Броун... in Чат | Google Таблицы и скрипты
volond
e.range.getsheet().getRange(e.range.getRow(),1)=
не разобрался.
что это? ну я пока совсем тупой в скриптах(
массив, получаю лист, получаю диапазон, колумн 1 в этом диапазоне? не понял как применить((
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Михаил Prayer Броун
не разобрался.
что это? ну я пока совсем тупой в скриптах(
массив, получаю лист, получаю диапазон, колумн 1 в этом диапазоне? не понял как применить((
Так смотри примеры
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Библиотека небольших скриптов onEdit()

Друзья, привет, в этом проекте мы собираем небольшие скрипты onEdit(), про которые когда-то писали на канале. А ниже — два новых скрипта, спасибо нашему чату за идеи.

1) Изменяем название листа в зависимости от введенного в ячейку A1:
function onEdit(e) {
 var ss = e.source;
 var sheet = ss.getActiveSheet();
 var r = e.range;
 var v = e.value;
 
 if(r.getA1Notation() === 'A1' && sheet.getName() !== v){sheet.setName(v)}
}


2) Пользователь написал «лазер» в третьем столбце — отправим эту строку на другой лист
function onEdit(e) {
 var ss = e.source;
 var sheet1 = ss.getActiveSheet();
 var sheet2 = ss.getSheetByName("сюда");
 var lr = sheet2.getLastRow() + 1;
 var range = e.range;
 var row = range.getRow();
 var column = range.getColumn();
 var value = e.value;
 
 if(column == '3' && value.match(/лазер/gi)){
   sheet2.getRange("A" + lr + ":" + "C" + lr).setValues(
     sheet1.getRange("A" + row + ":" + "C" + row).getValues()
   )}
}
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Михаил Prayer Броун
Всем привет. нужна помощь со скриптом:

1. Есть у меня таблица, первая колонка - даты, вторая - категории

2. Есть скрипт, взятый, грубо говоря, отсюда (из канала), который в первую колонку автоматом ставит дату
*/
function onEdit(e)
{
 var range = e.range
 if( range.getColumn()==2 && e.value!="" && range.offset(0,-1).getValue() == "" ){
   range.offset(0,-1).setValue(new Date())
 }
}

3. Есть проблема: если вставить во вторую колонку диапазон значений в 2 колонки (т.е. захватить и 3 колонку) - скрипт вставит даты в первую и вторую колонку. Может кто подсказать, как его ограничить?
Тебе надо поменять offset (смещение) на четкое определение диапазона вставки, посмотри в примерах, как это делать
источник

МБ

Михаил Prayer Броун... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Тебе надо поменять offset (смещение) на четкое определение диапазона вставки, посмотри в примерах, как это делать
так и подумал, но не заводится, пробовал уже по разному

вот мой текущий код

function onEdit(e) {
 var range = e.range;
 var sheet = e.source.getActiveSheet();
 
 if ( sheet.getName() == "Fin") {
   if ( range.getColumn() == 2 && range.offset(0,0).getValue() != "" && range.offset(0,-1).getValue() == ""){
     range.offset(0,-1).setValue(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"))
   }
источник

МБ

Михаил Prayer Броун... in Чат | Google Таблицы и скрипты
походу, не понял как e.range.getsheet().getRange(e.range.getRow(),1)= работает(
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Михаил Prayer Броун
походу, не понял как e.range.getsheet().getRange(e.range.getRow(),1)= работает(
тебе не нужно использовать оффсет, тебе нужен гетрейндж
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Володя тебе про это и написал - обращайся к конкретному столбцу, бери номер строки, которую ты редактируешь, добавляй в getrange и вставляй туда дату
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Посмотри кучу примеров, которые у нас про это и есть и попытайся разобраться, это простейшее действие, которое можно сделать скриптами
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Ну вот же скрипт без оффсета, он гарантировано вставит только в одну ячейку
источник