Очистить содержимое каждой строки в столбце на одном листе, в зависимости от изменения в столбце в той же строке на другом листе - PullRequest
0 голосов
/ 26 января 2020

Я борюсь с этим кодом, который прекрасно работает внутри одного листа, чтобы он работал между двумя листами. Например, если я изменяю содержимое в ячейке E5 или в нескольких ячейках в столбце E на «Sheet1», это очищает содержимое в ячейке A5 или в нескольких ячейках в столбце A, в зависимости от строки, в которой они находятся.

function onEdit(e){
  var range = e.range;
  var row = range.getRow();
  // Check if column E and sheet "Sheet1"
  if(range.getColumn() == 5 && range.getSheet().getName() == "Sheet1") 
  {
    if(range.getHeight()>1)
    {
      // Multiple cells selection case
      var nbRow = range.getNumRows();
      var i;
      for(i =0; i < nbRow; i++)
      {
        var temp = row + i;
        e.source.getRange("A"+temp).clear();
      }
    }
    else
    {
      // One cell selection case
      e.source.getRange("A"+row).clear();
    }
  } 
}

Не могли бы вы, ребята, помочь мне с кодом, чтобы он работал между двумя листами, потому что он уже сводит меня с ума: /

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 26 января 2020

Изменение на одном листе очищает диапазон на другом листе

function onEdit(e){
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet1' && e.range.columnStart==5) {
    var sh2=e.source.getSheetByName('Sheet2');
    sh2.getRange(e.range.rowStart,1,e.range.rowEnd-e.range.rowStart+1,1).clearContent()  
  }
} 

Вопрос: Что мне делать с кодом, чтобы он начинался в пятой строке? Первые четыре ряда заморожены. (Возможно информация заголовка)

function onEdit(e){
  var sh=e.range.getSheet();
  if(sh.getName()=='Sheet1' && e.range.columnStart==5 && e.range.rowStart>4) {
    var sh2=e.source.getSheetByName('Sheet2');
    sh2.getRange(e.range.rowStart,1,e.range.rowEnd-e.range.rowStart+1,1).clearContent()  
  }
} 

Анимация:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...