В настоящее время я пытаюсь выполнить сценарий приложения в объявлениях Google, который срабатывает, когда в ячейке A1 листа Google задано определенное значение - PullRequest
0 голосов
/ 27 марта 2019

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

Мне бы хотелось, чтобы этот скрипт запускался, когда в ячейку A1 внешнего листа Google вставлено определенное значение, например "run".

Ниже приведен текущий код без триггера.

function main() {
  removeAllNegativeKeywordsFromList();
}


function removeAllNegativeKeywordsFromList() {
  var NEGATIVE_KEYWORD_LIST_NAME = 'test';

  var negativeKeywordListIterator =
      AdsApp.negativeKeywordLists()
          .withCondition('Name = "' + NEGATIVE_KEYWORD_LIST_NAME + '"')
          .get();

  if (negativeKeywordListIterator.totalNumEntities() == 1) {
    var negativeKeywordList = negativeKeywordListIterator.next();
    var sharedNegativeKeywordIterator =
        negativeKeywordList.negativeKeywords().get();

    var sharedNegativeKeywords = [];

    while (sharedNegativeKeywordIterator.hasNext()) {
      sharedNegativeKeywords.push(sharedNegativeKeywordIterator.next());
    }

    for (var i = 0; i < sharedNegativeKeywords.length; i++) {
      sharedNegativeKeywords[i].remove();
    }
  }
}

Я попытался подключить скрипт к листу Google и запустить его, когда я вставляю слово триггера, но, похоже, он не работает

Я не вводил триггер, который использовал, так как он думает, что он полностью неверен. код без триггера

Запустите вышеуказанный скрипт, когда слово "run" помещено в ячейку A1 внешнего листа Google. enter code here

1 Ответ

0 голосов
/ 28 марта 2019

Итак, если я правильно понял, вы ищете только триггер для этого кода.Для запуска вашего кода при вставке «run» в A1 вы должны использовать onEdit (e)

function onEdit(e)
{
  // Your testword
  var theword = 'run';

  // Get the value in cell
  var value = e.value;

  // Check the range. You could use the spreadsheet->cell->getvalue() but
  // this should perform better as calling the SheetApp - API is costly
  var isA1 = (e.range.columnStart == 1 && e.range.rowStart == 1);

  // if the word and the range both match
  if( isA1 && (value == theword)) 
  {
    // Run your code
    removeAllNegativeKeywordsFromList();
  }
}

Сам триггер протестирован и работает, но что касается вашего кода, я не смог подтвердить это, так как я незнать, работает ли ваш 'removeAllNegativeKeywordsFromList' в первую очередь.В случае, если вам нужна какая-либо помощь в этом, пожалуйста, сообщите еще несколько об этом AdsApp, пожалуйста.

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

Надеюсь, это поможет вообще.

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