Я пытаюсь скопировать диапазон от одного листа к другому (, сохраняя при этом формулы). Я написал простой скрипт, использующий copyTo
:У вас нет разрешения на использование copyTo
function copyRangeAcrossSheets(source_sheet,source_range,target_sheet,target_range) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var source_sheet = spreadsheet.getSheetByName(source_sheet);
var target_sheet = spreadsheet.getSheetByName(target_sheet);
var source_range = source_sheet.getRange(source_range);
var target_range = target_sheet.getRange(target_range);
source_range.copyTo(target_range);
}
Что я называю, как следует:
=copyRangeAcrossSheets("TEST_source","A1:A3","TEST_target","A1:A3")
И я получаю ошибку ниже:
You do not have the permission to call copyTo
Я сделал некоторое рытье и нашел, что functions have to use special triggers (installable) in order to modify another file. Однако здесь я изменяю один и тот же файл.
Q1: Почему copyTo
не удается найти здесь?
Q2: Как я могу обойти проблему без определения устанавливаемых триггеров? (Я просто хочу скопировать диапазоны при сохранении формул)
'Вы не можете изменять другие документы': я изменяю один и тот же документ, чего не понимаю. Я бы понял, изменил ли я несколько таблиц, но здесь дело не в этом. – Max
@Max Насколько известно, это лист, для которого требуется авторизация, которую он не может получить как анонимный пользователь. Эти функции могут возвращать только данные, но не могут использовать другие службы, требующие авторизации для записи данных. Я отредактировал свой покой, чтобы это отразить. –
OK ясно. Теперь с помощью триггера в пользовательском меню. – Max