Вопрос

У меня есть пользовательская функция в качестве скрипта электронной таблицы Google, который зависит от значений некоторых других ячеек. Он работает в порядке, в первый раз, когда я положил его в камеру, но затем, когда я изменяю данные в других ячейках, он остается прежним. Как я могу сделать первую ячейку обновлять его значение автоматически, когда я меняю другие ячейки?

Это было полезно?

Решение

Я нашел ответ, который не полностью делает меня счастливым, но это достаточно хорошо, я думаю. Если вы добавите функцию под названием onEdit К скрипту электронной таблицы его будет называться каждый раз, когда все осталось отредактировано. Итак, это код, который работал для меня: (у него есть некоторые детали, которые могут быть полезны, поэтому я оставил их неотредактированным)

function onEdit(event) {
  if (SpreadsheetApp.getActiveSheet().getName().substr(0,5) == "thing")
    SpreadsheetApp.getActiveSheet().getRange("I1").setValue(myCustomFunction());
}

Это делает листы, чье имя начинается с thing, получить результат myCustomFunction в клетку I1.

Другие советы

У меня похожая проблема.

Вот как я делаю это банкоматом, но это не лучшее решение. Я ищу лучшую.

Если какое-либо значение при листе цен и столбца d меняется. Значение, если какая-либо значение соты меняется во всей колонке, он обновляет пользовательское значение функции.

//Search Price sheet with the given name. Return price. dummy param updates google ss once the "Prices" sheet values changed.
function searchPrice(price,dummy)
{
  var SPREADSHEET_NAME = "Prices";
  var SEARCH_COL_IDX = 2;
  var RETURN_COL_IDX = 3;
  var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
  for (var i = 0; i < values.length; i++)
  {
    var row = values[i];
    if (row[SEARCH_COL_IDX] == price)
    {
      return row[RETURN_COL_IDX];
    }
  }
}

Вот как вы называете это = SearchPrice (B8, цены! D: D)

Просто дайте свою пользовательскую функцию манекен. Это ничего не делает в пользовательской функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top