У меня есть 2 таблицы: A и B. Я создал свою пользовательскую функцию function_A() в таблице A:
function function_A() {
return("test")
}
это работает, и я хочу использовать его в электронной таблице B. Как я могу импортировать свою пользовательскую функцию в B? Является ли это возможным ?
Проблема, если я хочу использовать его во многих электронных таблицах: B, C, D, ... ZZ, тогда мне нужно сделать так много копий, это неэффективно, так как сложно отлаживать или обновлять функцию. Я должен идти один за другим. Использование одной основной функции в качестве библиотеки будет проще в обслуживании.
Спасибо за ответ. Теперь я заметил, что ваш вопрос был решен. Я рад за это.
В качестве альтернативного решения того, что предложил @Tanaike, вы можете использовать библиотеки сценариев приложений. Таким образом, вы можете импортировать внешний код Apps Script в свой проект, чтобы улучшить читаемость и включить расширяемость кода.
Ваш проект Apps Script с привязкой Spreadsheet_A выглядит следующим образом:
function function_A() {
return "output_A";
}
Теперь, чтобы использовать этот код на вашем «Spreadsheet_B», вам нужно будет импортировать его, используя проект Apps Script «Spreadsheet_A» «Script ID».
Вы можете найти это в Apps Script «Настройки проекта».
После копирования переключитесь на связанный проект Apps Script «Spreadsheet_B» и импортируйте библиотеку «Spreadsheet_A», используя ее «идентификатор сценария». Перейдите к Resources>Libraries
и вставьте «Идентификатор сценария» в поле ввода «Добавить библиотеку». Наконец, нажмите «Добавить».
Обратите внимание, что библиотеке теперь будет назначен идентификатор. Вы можете редактировать его в соответствии с вашими потребностями. В этом примере я буду использовать букву «А».
Теперь вы можете просто создать новый function_B()
в вашем проекте Apps Script с привязкой к «Spreadsheet_B», который внутренне использует function_A()
из библиотеки Apps Script:
/*
* @customfunction
*/
function function_B() {
return A.function_A() + " from function_B";
}
Библиотеки скриптов приложений
Большое спасибо. Перфекто, отлично работает. Но у меня есть вопрос, если возможно, вместо того, чтобы подключать его с помощью идентификатора сценария, есть ли способ сделать мою функцию «глобальной» для всей моей электронной таблицы? Некоторые другие приложения, которые я использовал, у них есть API для создания пользовательской функции и загрузки ее как «глобальной» функции, поэтому она будет немедленно доступна для всего моего проекта.
В этом случае я бы предложил использовать надстройку Editor. Вы можете определить функцию в надстройке, установить ее и использовать в каждой электронной таблице, которую вы будете использовать со своей учетной записью. Однако вам придется запустить надстройку на новой электронной таблице.
Хотя я не уверен, правильно ли я мог понять о вашей реальной цели, например, как простой метод, как насчет копирования сценария Google Spreadsheet A в редактор сценариев Google Spreadsheet B?