Проблема с медленным сценарием временных меток, а также требуется для исключения листа 1 и листа 2

#javascript #performance #dataframe #google-apps-script #time

#javascript #Производительность #фрейм данных #google-apps-script #время

Вопрос:

У меня сценарий временных меток немного медленный, и я не могу понять, как исключить определенные листы (лист 1 и лист 2)

 function onEdit(e) { 
  var row = e.range.getRow(); 
  var col = e.range.getColumn(); 
  var startRow = 2; 
  // var colName1 = 3; 
  // var colTime1 = 1; 
  // var colName2 = 09; 
  // var colTime2 = 11; 
  // var colName3 = 15; 
  // var colTime3 = 13; 
  // var colName4 = 21; 
  // var colTime4 = 22; 
  if(col == 3 amp;amp; row >= startRow){ 
    e.source.getActiveSheet().getRange(row,1).setValue(new Date()); 
  } 
  if (col == 09 amp;amp; row >= startRow){ 
    e.source.getActiveSheet().getRange(row,11).setValue(new Date()); 
  } 
  if (col == 15 amp;amp; row >= startRow){ 
    e.source.getActiveSheet().getRange(row,13).setValue(new Date()); 
  } 
  if (col == 21 amp;amp; row >= startRow){ 
    e.source.getActiveSheet().getRange(row,22).setValue(new Date()); 
  } 
}
  

Ищу вашу любезную помощь

Спасибо

Комментарии:

1. Пожалуйста, не могли бы вы предоставить более подробную информацию об этом и комментарии по очистке?

Ответ №1:

 function onEdit(e) { 
  var excl=['Sheet1','Sheet2'];
  var sh=e.range.getSheet(); 
  if(excl.indexOf(sh.getName())==-1 amp;amp; e.range.rowStart>1) {
    var dt=new Date();
    if(e.range.columnStart==3)sh.getRange(e.range.rowStart,1).setValue(dt); 
    if(e.range.columnStart==9)sh.getRange(e.range.rowStart,11).setValue(dt); 
    if(e.range.columnStart==15)sh.getRange(e.range.rowStart,13).setValue(dt); 
    if(e.range.columnStart==21)sh.getRange(e.range.rowStart,22).setValue(dt);
  }
}
  

Комментарии:

1. Привет, Купер, спасибо за любезный ответ, но все еще медленно, поскольку я использую почти 20 вкладок на одном листе, используя те же скрипты с временными метками, ожидаю вашего доброго ответа и помощи

2. иногда 10 из них были активны одновременно

3. я понятия не имею, почему последнее условие не работало так хорошо, если (например,range.columnStart==21)sh.getRange(например,range.rowStart,22).setValue(dt);

4. По моему опыту, 10 пользователей с onEdit (), вероятно, не будут работать надежно

5. поверьте мне, сегодня я запускаю его снова и все еще медленно? есть ли какой-нибудь способ сделать это немного быстрее? Спасибо