Class NamedRange
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
已命名範圍
Range
具有名稱和 ID,可供日後擷取。名稱不一定是唯一的;同一個分頁中的多個不同範圍可能會共用相同名稱,就像 HTML 中的類別一樣。相較之下,ID 在分頁中是唯一的,就像 HTML 中的 ID 一樣。NamedRange
加入分頁後,就無法修改,只能移除。
任何存取分頁的指令碼都可以存取 NamedRange
。為避免指令碼之間發生非預期的衝突,建議在範圍名稱前方加上專屬字串。
// Create a named range that includes every table in the active tab.
const documentTab =
DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();
const rangeBuilder = documentTab.newRange();
const tables = documentTab.getBody().getTables();
for (let i = 0; i < tables.length; i++) {
rangeBuilder.addElement(tables[i]);
}
documentTab.addNamedRange('myUniquePrefix-tables', rangeBuilder.build());
內容詳盡的說明文件
getId()
取得此 NamedRange
的 ID。這個 ID 在分頁中是唯一的。
回攻員
String
:範圍的 ID,在分頁中不重複。
getName()
取得這個 NamedRange
的名稱。名稱不一定會重複。
回攻員
String
:範圍名稱,不一定是唯一值。
授權
使用這個方法的腳本需要具備下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
getRange()
取得與此 NamedRange
相關聯的元素範圍。
回攻員
Range
:與名稱和 ID 相關聯的元素範圍。
授權
使用這個方法的腳本需要具備下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
remove()
從分頁中移除這個 NamedRange
。這個方法不會刪除範圍的內容,只會移除參照。在已移除的 NamedRange
上呼叫此方法不會產生任何效果。
授權
使用這個方法的腳本需要具備下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/documents.currentonly
-
https://www.googleapis.com/auth/documents
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003eA \u003ccode\u003eNamedRange\u003c/code\u003e is a named area within a Google Doc tab, retrievable using its name or unique ID, similar to HTML elements with classes and IDs respectively.\u003c/p\u003e\n"],["\u003cp\u003eWhile multiple ranges can share the same name, IDs are unique within a tab, and once a \u003ccode\u003eNamedRange\u003c/code\u003e is added, it can only be removed, not modified.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eNamedRange\u003c/code\u003e provides methods like \u003ccode\u003egetId()\u003c/code\u003e, \u003ccode\u003egetName()\u003c/code\u003e, \u003ccode\u003egetRange()\u003c/code\u003e, and \u003ccode\u003eremove()\u003c/code\u003e for managing and accessing the named range and its associated elements.\u003c/p\u003e\n"],["\u003cp\u003eScripts can access \u003ccode\u003eNamedRange\u003c/code\u003e within a tab, and using unique prefixes for range names helps avoid conflicts between different scripts.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eNamedRange\u003c/code\u003e methods might require specific authorization scopes for accessing and manipulating document content.\u003c/p\u003e\n"]]],[],null,["# Class NamedRange\n\nNamedRange\n\nA [Range](/apps-script/reference/document/range) that has a name and ID to allow later retrieval. Names are not\nnecessarily unique; several different ranges in the same tab may share the same name, much like a\nclass in HTML. By contrast, IDs are unique within the tab, like an ID in HTML. Once a `Named``Range` has been added to a tab, it cannot be modified, only removed.\n\nA `Named``Range` can be accessed by any script that accesses the tab. To avoid unintended\nconflicts between scripts, consider prefixing range names with a unique string.\n\n```javascript\n// Create a named range that includes every table in the active tab.\nconst documentTab =\n DocumentApp.getActiveDocument().getActiveTab().asDocumentTab();\nconst rangeBuilder = documentTab.newRange();\nconst tables = documentTab.getBody().getTables();\nfor (let i = 0; i \u003c tables.length; i++) {\n rangeBuilder.addElement(tables[i]);\n}\ndocumentTab.addNamedRange('myUniquePrefix-tables', rangeBuilder.build());\n``` \n\n### Methods\n\n| Method | Return type | Brief description |\n|---------------------------|------------------------------------------------|-----------------------------------------------------------------|\n| [getId()](#getId()) | `String` | Gets the ID of this `Named``Range`. |\n| [getName()](#getName()) | `String` | Gets the name of this `Named``Range`. |\n| [getRange()](#getRange()) | [Range](/apps-script/reference/document/range) | Gets the range of elements associated with this `Named``Range`. |\n| [remove()](#remove()) | `void` | Removes this `Named``Range` from the tab. |\n\nDetailed documentation\n----------------------\n\n### `get``Id()`\n\nGets the ID of this `Named``Range`. The ID is unique within the tab.\n\n#### Return\n\n\n`String` --- The range's ID, which is unique within the tab.\n\n*** ** * ** ***\n\n### `get``Name()`\n\nGets the name of this `Named``Range`. The name is not necessarily unique.\n\n#### Return\n\n\n`String` --- The range's name, which is not necessarily unique.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `get``Range()`\n\nGets the range of elements associated with this `Named``Range`.\n\n#### Return\n\n\n[Range](/apps-script/reference/document/range) --- The range of elements associated with the name and ID.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`\n\n*** ** * ** ***\n\n### `remove()`\n\nRemoves this `Named``Range` from the tab. This method doesn't delete the contents of the\nrange; it merely the removes the reference. Calling this method on a `Named``Range` that\nhas already been removed has no effect.\n\n#### Authorization\n\nScripts that use this method require authorization with one or more of the following [scopes](/apps-script/concepts/scopes#setting_explicit_scopes):\n\n- `https://www.googleapis.com/auth/documents.currentonly`\n- `https://www.googleapis.com/auth/documents`"]]