Я хочу, чтобы переменная «имя листа» была именем активного листа. Как это сделать? Я попробовалУстановить переменную как имя листа
var sheetname = SpreadsheetApp.getActiveSpreadsheet().getSheetByName();
Но это не сработало. Кто-нибудь?
Я хочу, чтобы переменная «имя листа» была именем активного листа. Как это сделать? Я попробовалУстановить переменную как имя листа
var sheetname = SpreadsheetApp.getActiveSpreadsheet().getSheetByName();
Но это не сработало. Кто-нибудь?
Вы ищете Sheet.getName()
, проверьте documentation here.
var sheetname = SpreadsheetApp.getActiveSheet().getName();
.getName()
метод существует в обоих электронных таблиц и листовых классов. Spreadsheet.getName()
вернет имя документа , а Sheet.getName()
предоставит вам имя листа в электронной таблице (то же имя, которое отображается на вкладке). В скрипте Google Apps, как и в javascript, вам нужно обратить внимание на возвращаемые типы вызовов методов или функций, чтобы убедиться, что вы вызываете правильный метод в цепочке.
В вашем примере .getActiveSpreadsheet()
возвращает экземпляр таблицы. При переписывании вместо этого мы используем .getActiveSheet()
, что дает лист.
спасибо за подробное объяснение! Мне нужно было использовать $ sheetname, тогда это сработало! – TobiasH
Это не работает, если у вас несколько листов. На Sheet2 это все равно возвращает «Sheet1». – 10basetom
@ 10basetom - [Вот демонстрация] (https://docs.google.com/spreadsheets/d/1Zg-FU3KEGq-IgHGRpv4ETTqXGQRvJFbUXqzsYFup7Wg/edit?usp=sharing), возьмите копию электронной таблицы и попробуйте сами. Перейдите на любой лист и запустите «Имя листа> Показать имя листа». Работает отлично. Если у вас возникли проблемы, задайте вопрос с подробностями о вашем коде (например, это триггерная функция, встроенный скрипт и т. Д.). – Mogsdad