Скрипт приложения Google листов onEdit устанавливает формулу, когда ячейка пуста - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь настроить лист, на котором люди могут писать свои рабочие данные каждый месяц, который включает в себя много поисков, но должен позволять людям добавлять свои собственные ценности, если они в этом нуждаются.Что я получил до сих пор:

function onEdit(e)

{
  var ssA = SpreadsheetApp.getActive();
  var ss = ssA.getSheetByName("Completed") 
  var lastRow = ss.getLastRow();
  var range = ss.getRange(5,6,lastRow,1);
  var data = range.getValues();
  for(var i=0;i<data.length;i++)
  {  
    if(!data[i][0])//If true then it's blank
    {
      data[i][0]="=IFERROR(INDEX('Client lookup sheet'!C[-1]:C[-1],MATCH(R[0]C[-4],'Client lookup sheet'!C[-5]:C[-5],false)),\"\")"
    }
  }
  range.setValues(data);

Лист настроен так, что при вводе имени клиента следующий столбец будет использоваться для поиска соответствующего местоположения для этого клиента.Приведенный выше код используется, поэтому, когда пользователь случайно удаляет формулу в столбце местоположений, ее можно сбросить с помощью функции onEdit.

Проблема, с которой я столкнулся, заключается в том, что, хотя код отлично работает для установки пустых ячеек, имеющих формулу, он также имеет нежелательное поведение установки значений поиска для необработанных значений, поэтому, если, скажем, Jay выбран какклиент, местоположение будет заполнено как Sydney NSW на основе списка поиска, но setValues ​​вынуждает ячейку становиться Sydney NSW, а не сохранять формулу поиска.

Есть ли способ проверить, имеет ли ячейка в столбце формулу, и запретить ее установку в качестве значений, если формула уже существует?

Спасибо!и извините за длинный вопрос

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