Google Script заменит формулу ImportRange, которая перестала работать? - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужна помощь.В моей работе используется форма Google (форма запроса на отсутствие) для сбора информации о нерабочем / больничном.При отправке эти данные попадают в электронную таблицу Google, где общее время отключения затем рассчитывается по формуле.

Сотрудник, которому поручено обновить время всех сотрудников, использует другую электронную таблицу Google для расчета заработной платы.Я использовал следующую формулу для импорта данных из листа запроса отсутствия, пока они внезапно не перестали работать.Я предполагаю, что важные данные стали слишком большими.В настоящее время в таблице 560 строк и 18 столбцов.= QUERY (IMPORTRANGE ("https://docs.google.com/spreadsheets/d/1uZL7bMIiuOEpSbC0kk3rB_nkBAGb8Pf-opwl4FGovJ0/edit#gid=971834620"," 'Ответы формы 1'! B: P ")," Выберите Col1, Col4, Col5, Col11, Col14, где Col2 <> '' ", 1) [Примечание: Iне может поделиться таблицей, указанной в формуле]

Col1 - это электронная почта, Col4 - первый выходной, Col5 - последний выходной, Col11 - общее количество нерабочих дней, Col14 - описание выходного (личное, больничное время,и т.д.).

Я пытался заменить его сценарием, но продолжал сталкиваться с ошибками. Я ничего не знаю о скриптах Google Apps. Последние 3 дня я читал о них здесь и пыталсяЗапрограммируйте что-то, но ничего не работает. Многие сценарии заканчиваются ошибками по истечении времени ожидания через одну или две минуты или вообще не выдают сообщений об ошибках и не работают.

Другие формулы запускаются в ведомости расчета. Вот ссылкак фиктивному списку заработной платы, в котором есть все элементы: https://docs.google.com/spreadsheets/d/1y4baWrY0799dQPffXfD7oKCMISy7uai34wTRG5dtlfQ/edit?usp=sharing

Мои вопросы: 1. Можно ли улучшить формулу importrange, чтобы она снова работала? Если да, что я могу сделать, чтобы ускорить процессвверх 2. Может ли скрипт решить мою формулупроблемы и, возможно, ускорение процесса расчета (иногда на выполнение всего листа уходит час) 3. Если сценарий может помочь, что бы это было?

В этот момент я бью себя по стенам головой, так что очень открыт для любых попыток!

Это последний скрипт, который я пробовал, и я получил это сообщение об ошибке: Ошибка типа: Невозможно вызвать метод "getRange" со значением NULL.(строка 15, файл «Код»)

function onOpen() {
  var submenu = [{name:"Copy", functionName:"Copy"}];
  SpreadsheetApp.getActiveSpreadsheet().addMenu('Menu', submenu);  
}

function Copy() {
 var sss = SpreadsheetApp.openById('1uZL7bMIiuOEpSbC0kk3rB_nkBAGb8Pf-opwl4FGovJ0'); //replace with source ID
 var ss = sss.getSheetByName('Responses'); //replace with source Sheet tab name
 var range = ss.getRange('A1:O600'); //assign the range you want to copy
 var data = range.getValues();

 var tss = SpreadsheetApp.openById('1f53bnAllY5LYgwyPY9X8oZJ5fMBbwpiB5CRglaw_iqM'); //replace with destination ID
 var ts = tss.getSheetByName('Data3forscript'); //replace with destination Sheet tab name

 ts.getRange(ts.getLastRow()+1, 1,16,38).setValues(data); //you will need to define the size of the copied data see getRange()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...