Size: a a a

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

2020 March 16

A

Admin in Чат | Google Таблицы и скрипты
Максим Зубеев
Тут спасибо огромное.
Я сам затупил.
Получилось в итоге? С датами
источник

МЗ

Максим Зубеев... in Чат | Google Таблицы и скрипты
Да, все получилось )
источник

A

Admin in Чат | Google Таблицы и скрипты
Максим Зубеев
Да, все получилось )
👍 Отлично! Обращайтесь, если что-то будет не получаться
источник

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
Admin
@IronMan74

Сниппет для определения последней заполненной строки
function getLastRowForAdmin(sheet, column){
 var data = sheet.getDataRange().getValues();
 var lr = 0;
 data.forEach(function(x, index){
   if(x[column-1] != ''){
     lr = index;}
 })
 return lr + 1
}
Скажи пожалуйста куда я должен вставить твой код на определение последней строки? я как понимаю мои lr и lc нужно удалить при этом ещё?

https://docs.google.com/spreadsheets/d/1JakwKKt-YAPKCxJrxEbZ6-q06k6z8dFjl3ClKG9IET0/edit?ts=5e68cda0#gid=0
источник
2020 March 17

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
lc вообще уже не используется, только сейчас заметил
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
🅿️оман 🅰️лексеев
lc вообще уже не используется, только сейчас заметил
источник

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
только просмотр
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
🅿️оман 🅰️лексеев
только просмотр
function border() {
 
 //Доступы
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var ss1 = SpreadsheetApp.openById("1pswNx4voagVuKcaypvJguCrQBySxd3XF_nOJ29O12PI")
 var sheet = ss.getSheetByName("Отправка игры");
 var sheet1 = ss1.getSheetByName("Столбцы которые должны быть");
 
 //Проверка нажатия чекбокса
 if (sheet.getRange(6, 5).isChecked()===true){
   
   //Удаляем сетку в базе
   sheet1.getRange("B:G" + sheet1.getLastRow()).setBorder(false, false, false, false, false, false, "#000", SpreadsheetApp.BorderStyle.SOLID);
   
   //Отправляем данные в базу
   var values = sheet.getRange(2, 1, 1, 8).getValues()[0];
   var v1 = [[values[0], values[1], values[2], values[3], values[4], values[5]]];
   var v2 = [[values[6], values[7]]];


   var data = sheet1.getDataRange().getValues();

   var lr = getLastRowS(sheet1.getRange("B1:B"+ sheet1.getLastRow()).getValues(), 1) * 1;
   sheet1.getRange(lr +1, 2, 1, v1[0].length).setValues(v1);
   sheet1.getRange(lr +1, 9, 1, v2[0].length).setValues(v2);
   
   
   //Рисуем сетку
   sheet1.getRange(1,2,sheet1.getLastRow(),sheet1.getLastColumn()).setBorder(true, true, true, true, true, true, "#000", SpreadsheetApp.BorderStyle.SOLID);
   
   //Удалить введённый контент
   var clear = sheet.getRange(2, 1, 1, 8).clearContent();
   
   //Убрать чекбокс
   sheet.getRange(6, 5).uncheck();
   
 }
}


function getLastRowS(data, column){return Math.max.apply(Math, data.map(function(x, index){return !x[column-1] ? '' : ++index}));}
источник

v

volond in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Смотри, частенько бывает ситуация, когда у тебя подобная таблица и тебе нужно вставить данные после ячейки а7. Как ее определить? Только перебрав массив в цикле. Можно как мы показали, можно - как Максим
еще вариант https://t.me/volondapps/20
источник

EN

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

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
function border() {
 
 //Доступы
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var ss1 = SpreadsheetApp.openById("1pswNx4voagVuKcaypvJguCrQBySxd3XF_nOJ29O12PI")
 var sheet = ss.getSheetByName("Отправка игры");
 var sheet1 = ss1.getSheetByName("Столбцы которые должны быть");
 
 //Проверка нажатия чекбокса
 if (sheet.getRange(6, 5).isChecked()===true){
   
   //Удаляем сетку в базе
   sheet1.getRange("B:G" + sheet1.getLastRow()).setBorder(false, false, false, false, false, false, "#000", SpreadsheetApp.BorderStyle.SOLID);
   
   //Отправляем данные в базу
   var values = sheet.getRange(2, 1, 1, 8).getValues()[0];
   var v1 = [[values[0], values[1], values[2], values[3], values[4], values[5]]];
   var v2 = [[values[6], values[7]]];


   var data = sheet1.getDataRange().getValues();

   var lr = getLastRowS(sheet1.getRange("B1:B"+ sheet1.getLastRow()).getValues(), 1) * 1;
   sheet1.getRange(lr +1, 2, 1, v1[0].length).setValues(v1);
   sheet1.getRange(lr +1, 9, 1, v2[0].length).setValues(v2);
   
   
   //Рисуем сетку
   sheet1.getRange(1,2,sheet1.getLastRow(),sheet1.getLastColumn()).setBorder(true, true, true, true, true, true, "#000", SpreadsheetApp.BorderStyle.SOLID);
   
   //Удалить введённый контент
   var clear = sheet.getRange(2, 1, 1, 8).clearContent();
   
   //Убрать чекбокс
   sheet.getRange(6, 5).uncheck();
   
 }
}


function getLastRowS(data, column){return Math.max.apply(Math, data.map(function(x, index){return !x[column-1] ? '' : ++index}));}
Вооо, спасибо тебе огромное) Правда сетка стирается тут постоянно) Но это уже незначительные мелочи)
источник

EN

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

EN

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

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
Оке, сейчас попробую)
источник

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
отправляется только 8 столбцов вместо 14
источник

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
хотя проставил 14 и удаляет тоже все 14
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Не, ну Роман, код перед тобой
источник

EN

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

🅿🅰

🅿️оман 🅰️лексеев... in Чат | Google Таблицы и скрипты
нет я имею ввиду на 2 части тоже делить отправлять в твоей версии?
источник

EN

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