Відображати назву аркуша в електронних таблицях Google


39

Чи є спосіб відобразити назву аркуша як результат функції в електронних таблицях Google (точно так, як це питання , за винятком таблиць Google)?


Будь ласка, дивіться мою відповідь на це питання на stackoverflow: stackoverflow.com/a/53409439/279326
Nicolas Janel

Відповіді:


11

Хтось написав сценарій для цього. Вона доступна в Tools > галерея Script ... . Знайдіть "ім'я аркуша" та встановіть скрипт, після чого використовуйте його =getCurrentSheetName().


9
Як отримати доступ до цього сценарію в "нових" Таблицях Google (для яких зараз використовується додаток)?
Бенджамін

4
Це більше не працює. Скористайтеся відповіддю від @ user93341. Я пройшов весь процес, щоб опублікувати його функцію в магазині додатків, і на останньому кроці вони хотіли 5 доларів підтвердити мій обліковий запис, і я обмежувався б публікацією 20 предметів. Ле зітхання.
Бруно Броноський

49

Перейдіть до ІнструментиРедактор сценаріїв та додайте цей код:

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

У комірку, де ви хочете назву аркуша, додайте:

=sheetName()

Виникла проблема з доступом до імен аркушів за допомогою функцій API, показаних нижче - де він повертав лише ім'я першого аркуша. Це було зафіксовано у березні 2015 року .


Чи можете ви розширити свою відповідь для тих із нас, хто не знайомий із інструментом сценарію?
codingbadger

1
@Barry 1) Виберіть Інструменти-> Редактор сценаріїв 2) У отриманому текстовому файлі в кінці додайте цю функцію 3) Клацніть Зберегти 4) Тепер ви можете використовувати цю функцію на своєму аркуші.
gamliela

5
Хоча ця функція працює добре, вона не оновлюється при зміні назви аркуша, тому насправді не корисна.
jesjimher

1
@jesjimher відповідно до цього Довідкового форуму Google Документів , якщо ви переходите до редактора сценаріїв і знову зберігаєте сценарій, повертаючись до аркуша, видно, що назви вкладок були належним чином оновлені.
арібейро

1
Я знаю, але це заплутано і абсолютно протилежно тому, як працюють формули аркушів. Я очікую, що формула буде оновлюватися кожного разу, коли її посилання змінюються. Тепер ця формула не робить цього, якщо я не відкрию і не збережу вихідний сценарій. Я міг просто вводити назву аркуша вручну кожен раз, рятуючи клопоту.
jesjimher

6

Ось фрагмент коду спеціальної функції, щоб отримати назву електронної таблиці за її ідентифікатором .

function GetSpreadsheetNameById(id) {
  var ss = SpreadsheetApp.openById(id);
  return ss.getName();
}

У комірці передайте Ідентифікатор аркуша (подивіться в URL-таблиці електронної таблиці для ідентифікатора).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')

1
Це лише невелика зміна відповіді на @ user93341 вище.
JamesThomasMoon1979

Це дає таку помилку: "Ви не маєте дозволу дзвонити SpreadsheetApp.openById."
Aurovrata

Це повертає ім'я документа замість імені аркуша, замінюйте return ss.getName();, return ss.getActiveSheet().getName();якщо ви хочете ім'я аркуша (мені фактично потрібне ім'я документа, тому дякую)
Емілієн,

-1

Спробуйте це:

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Вставте його в Інструменти> Редактор сценаріїв і викличте функцію з осередку, як це:

=getNameOfThisSheet(NOW())

Параметр NOW(), колишній GoogleClock(), допомагає уникнути проблем із запам'ятовуванням.


GOOGLECLOCK () замінено NOW (), з іншого боку недетерміновані функції не можуть використовуватися як аргументи користувацьких функцій.
Рубен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.