2015-04-14 8 views
2

Есть ли способ обработать все Именованные диапазоны в Листе Google?Как обрабатывать все именованные диапазоны в Листе Google?

Документы Google имеют .getNamedRanges(), но я не могу найти ничего подобного для листов. Я хочу прочитать и распечатать каждый параметр диапазона.

Моя конечная цель - исправить множество именованных диапазонов в массе. В рассматриваемом документе более 200.

Там ошибка в листах (Documented here) и с тех пор диапазоны по умолчанию в именованных диапазонах имеют весь промежуток слившихся клеток (то есть: A1:J1), но именованные диапазоны работают только в формулах, если указать только первую ячейку, я думал, может сэкономить много времени, просто приняв по умолчанию именованный диапазон (A1:J1 в качестве примера), а затем сценарий, чтобы я мог просто отключить все от конца, оставив только A1. Чтобы сделать это, мне нужно просто получить список всех названных диапазонов в листе.

Возможно ли это?

ответ

2

Короткий ответ нет, к сожалению.

есть запрос на повышение по адресу:

https://code.google.com/p/google-apps-script-issues/issues/detail?id=917

вы можете звезда, чтобы проголосовать за него и получать обновления.

+0

Это действительно отстой. :(Хорошо, я очень ценю ответ. Похоже, я просто буду их редактировать вручную. – UtahJarhead

+0

напоминает мне, как мы должны были делать что-то на MCRD – ScampMichael

+0

В качестве дополнения вы, ребята, будете счастливы знайте, что '.getNamedRanges()' теперь вещь. – UtahJarhead

1

Ответ теперь, по крайней мере, да. Остаются некоторые разочаровывающие ограничения при программной обработке названных диапазонов, но ситуация значительно улучшена.

Тот же метод .getNamedRanges(), указанный в вопросе, работает, если применяется к Листу (только именованные диапазоны, ссылающиеся на диапазон в листе) или в Таблице (все именованные диапазоны в электронной таблице). Он возвращает массив всех Named Ranges.

Вы не можете получить доступ к именованному диапазону непосредственно по имени в GAS. Довольно безумный надзор, требующий итерации по всему массиву названных диапазонов, чтобы добраться до необходимого.

В конце концов, однако, вы действительно не можете с ними справиться. Поскольку несколько других вопросов на SO выделяют, редко бывает когда-либо хорошая идея программно удалить именованный диапазон. Несмотря на то, что было бы намного проще удалить один, а затем повторно добавить его иногда, что приведет к поломке каждой ссылки в вашем листе до именованного диапазона (если только они не используют неудобную конструкцию indirect("named_range_name")).

+0

Хотя ваш ответ верен, это почти не так. Я имею в виду, что Google только недавно добавил '.getNamedRanges()' в Sheets. 2 месяца назад или около того . Как ботаник, я очень рад этому изменению. :) – UtahJarhead

+0

Это объясняет многое. Я обратил свое внимание на ГАЗ всего около 6 недель назад и не мог понять все ручные работы по названным диапазонам. Они по-прежнему являются серьезной болью, поскольку вы не можете '.getNamedRangeByName()' (без написания метода самостоятельно). –

Смежные вопросы