Я нашел и изменил какой-то код, чтобы захотеть, что я хочу, и он работает, но теперь это просто зверь, и я знаю, что есть способ лучше / чище - у нас будет 10-20 рабочих листов в течение дня и я просто не хочу, чтобы это так увязло
У меня есть прикрепленный файл Code.gs, и вот ссылка на страницу Google
https://docs.google.com/spreadsheets/d/15j4sdwvQfVUrDbr_35Iof5ZV0peSu3Jm3XlWgkB7CXw/edit?usp=sharing
Часть 1 - Эта часть этого кода должна оставлять отметку времени с адресом электронной почты текущего пользователя и датой и временем в двух столбцах рядом с ним -
function onEdit(event) {
var s = SpreadsheetApp.getActiveSheet();
//-----------------Your-Sheet 8-----------
if( s.getName() == "Your-Sheet 8" ) { //checks that we're on the correct sheet
var r = s.getActiveCell();
//-----------When data is entered in column F (the 6 column) it will automatically
// insert the current users Email in column G and will put a Time-Stamp in column H
if( r.getColumn() == 8) { //use getRow for row and getColumn for column
var nextCell = r.offset(0, 1);//offset (row,column)
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(Session.getUser());//inserts current users email
var nextCell = r.offset(0, 2);//offset (row,column)
if( nextCell.getValue() === '' ) //is empty?
nextCell.setValue(new Date());//will only put date, format "123/Date and time" if time needed
}
}
//-----------------Your-Sheet 7-----------
if( s.getName() == "Your-Sheet 7" ) {
var r = s.getActiveCell();
if( r.getColumn() == 8) {
var nextCell = r.offset(0, 1);
if( nextCell.getValue() === '' )
nextCell.setValue(Session.getUser());
var nextCell = r.offset(0, 2);
if( nextCell.getValue() === '' )
nextCell.setValue(new Date());
}
}
So on and so on
//-----------------Your-Sheet 6-----------
//-----------------Your-Sheet 5-----------
//-----------------Your-Sheet 4-----------
//-----------------Your-Sheet 3-----------
//-----------------Your-Sheet 2-----------
//-----------------Your-Sheet 1-----------
???? ---- Есть ли способ сделать что-то вроде - if (s.getName () ==
"Все") {- Или Getactivesheet? я просто не уверен ----- ????
Часть 2 - Это зверская часть кода, я очень надеюсь, что есть способ убрать это, сделать его более компактным и работать лучше.
//------------------------------------Move Row to another Sheet--------------------------------------------
var ss = SpreadsheetApp.getActiveSpreadsheet(); //Checks to see what sheet the user is on
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
//---------------Your-Sheet 1 - Moving select Row from "Your-Sheet 1" to desired Sheet--------------
// if(s.getName() == "Your-Sheet 1" ---- (checks what sheet the user is on)
// && r.getColumn() == 15 ---- (This is the Column number that is being looked at i.e. column 13 = Column M)
// && r.getValue() == "Your-Sheet 7") ---- (the value in this cell determines what or where this data is going)
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 7") {
var row = r.getRow(); //This is selecting the active row
var numColumns = s.getLastColumn(); //This tells how many column are in that row that have data i.e. if the last column with data is column "R" there is no need to copy the data all the way to column "Z"
var targetSheet = ss.getSheetByName("Your-Sheet 7"); // This is what sheet we want our row of data to be sent to
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); //This checks to find the last row with data and targets the row below
s.getRange(row, 1, 1, numColumns).moveTo(target); // This Copies data to the empty row we just found
s.deleteRow(row); // This deletes the row off of the current sheet
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 3") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 3");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 4") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 4");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 5") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 5");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 6") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 6");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 8") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 8");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 1" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 2") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 2");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
//---------------Your-Sheet 2 - Moving select Row from "Your-Sheet 2" to desired Sheet--------------
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 7") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 7");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 3") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 3");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 4") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 4");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 5") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 5");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 6") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 6");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 8") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 8");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
if(s.getName() == "Your-Sheet 2" && r.getColumn() == 15 && r.getValue() == "Your-Sheet 1") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Your-Sheet 1");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
And i have to do this for every Sheet!
//---------------Your-Sheet 3 - Moving select Row from "Your-Sheet 3" to desired Sheet--------------
//---------------Your-Sheet 4 - Moving select Row from "Your-Sheet 4" to desired Sheet--------------
//---------------Your-Sheet 5 - Moving select Row from "Your-Sheet 5" to desired Sheet
//---------------Your-Sheet 6 - Moving select Row from "Your-Sheet 6" to desired Sheet--------------
//---------------Your-Sheet 7 - Moving select Row from "Your-Sheet 7" to desired Sheet--------------
//---------------Your-Sheet 8 - Moving select Row from "Your-Sheet 8" to desired Sheet--------------
}