от
У меня есть пользовательская функция, которая находит значение другой ячейки и отображает его. Когда исходная ячейка изменяется, функция не отражается. https://docs.google.com/spreadsheets/d/1wfFe__g0VdXGAAaPthuhmWQo3A2nQtSVUhfGBt6aIQ0/edit?usp=sharing Обновление гугл листов
function findRate() {
  var accountName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,1).getValue(); //determine the account name to use in the horizontal search
  var rateTab = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Rates'); //hold the name of the rate tab for further dissection
  var rateNumColumns =rateTab.getLastColumn(); //count the number of columns on the rate tab so we can later create an array
  var rateNumRows = rateTab.getLastRow(); //count the number of rows on the rate tab so we can create an array
  var rateSheet = rateTab.getRange(1,1,rateNumRows,rateNumColumns).getValues(); //create an array based on the number of rows

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Вы хотите пересчитать пользовательскую функцию
=findRate()
, когда ячейки с именем листа
Rates
редактируются. Если мое понимание верно, как насчет добавления следующего примера сценария? Пожалуйста, подумайте об этом как один из нескольких ответов. Решение: Чтобы пересчитать пользовательскую функцию, в этом ответе формула
=findRate()
перезаписывается сценарием, запускаемым с помощью триггера события OnEdit (в данном случае это простой триггер.). Таким образом, пересчет выполняется. Но когда формула напрямую заменяется той же формулой, пересчет не выполняется. Поэтому я использовал следующий поток. Извлеките все диапазоны ячеек, имеющих формулу
=findRate()
, из листа «Прогнозируемый доход». Очистите формулы диапазонов. Поместите формулы в диапазоны. Таким образом, когда ячейка листа «Тарифы» редактируется, пользовательская функция
=findRate()
пересчитывается путем автоматического запуска
onEdit()
. Пример скрипта: Пожалуйста, скопируйте и вставьте следующий скрипт в редактор скриптов. Затем, пожалуйста, отредактируйте ячейки имени листа
Rates
. Таким образом,
onEdit()
автоматически запускается триггером события OnEdit.
function onEdit(e) {
  var range = e.range;
  if (range.getSheet().getSheetName() == "Rates"
...