Сначала я должен извиниться и изменить мои комментарии в вашем вопросе.В API Sheets, когда значение объекта отсутствует, свойство не создается.Например, sheetId
из gid=0
не отображается в объекте диапазона.(Но я не уверен, происходит ли это при всех шаблонах ответов API Sheets.) Об этом я уже забыл.Я должен извиниться за эту ситуацию.
Учитывая вышеизложенную ситуацию, я исследовал вашу электронную таблицу.В результате было найдено следующее:
- NamedRange с
PlageNommée1
может быть получен с помощью API Sheets.В этом случае, хотя диапазон включен в качестве диапазона сетки, sheetId
не включается в объект диапазона, поскольку идентификатор листа равен 0
. - NamedRange с
PlageNommée2
не может быть полученAPI листов.В этом случае объект диапазона, связанный с PlageNommée2
, не может быть получен, хотя sheetId
из PlageNommée2
не является 0
. - Я думаю, что, когда диапазон сетки равен
#REF!
, Sheets API может использовать это как не namedRange.
Ситуация сверху, я подумал, что электронная таблицаСлужба вместо Sheets API могла бы получать значения.Итак, я проверил это.Пример сценария с использованием Spreadsheet Service выглядит следующим образом.
Пример сценария:
var id = "### spreadsheetId ###"; // Please set this.
var namedRanges = SpreadsheetApp.openById(id).getNamedRanges();
for (var i = 0; i < namedRanges.length; i++) {
Logger.log("name: %s, range: %s!%s",
namedRanges[i].getName(),
namedRanges[i].getRange().getSheet().getSheetName(),
namedRanges[i].getRange().getA1Notation()
)
}
Результат:
name: "PlageNommée1", range: "Feuille 1!A1"
name: "PlageNommée2", range: "Feuille 2!#REF!"
- В этом случае диапазон
Feuille 2
можно получить как #REF!
.Из этого результата вы можете проверить namedRanges. - Было обнаружено, что namedRange
PlageNommée2
может быть получен службой электронных таблиц, даже если диапазон равен #REF!
.
Ссылка: