首页 > 解决方案 > 无法将开发者元数据添加到行

问题描述

我需要以编程方式将信息与 Google 表格中的一行相关联,并且用户交互最少。关联必须与同一行保持关联,即使在上面添加或删除了一行。此外,如果该行是,则应删除该信息。

对我来说,这听起来像是 DeveloperMetadata 的工作。

我现在想在没有 API 的情况下执行此操作 - 以避免添加更多变量。在使用 API 之前,我会使用命名范围。

无论如何,Spreadsheet、Sheet 和 Range 类都具有方法:addDeveloperMetadata,具有各种输入 - 没有一个具有 DeveloperMetadataLocationType 输入(问题 #1)。

有趣的是,正如这里的答案所建议的那样,以下代码确实将开发人员元数据添加到列中:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("H:H").addDeveloperMetadata("columnName", "price");

但是,我一生都无法弄清楚如何创建“ROW”范围来添加元数据。我尝试了以下方法:

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(1, 1, 1, sheet.getMaxColumns()).addDeveloperMetadata("rowStatus", "processing");

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A2:L2").addDeveloperMetadata("rowStatus", "processing");

其中 L 是最后一列。

在这两种情况下,我都会收到以下错误:

目前不支持将开发人员元数据添加到任意范围。开发人员元数据只能添加到顶级电子表格、单个工作表或整行或整列。

有什么方法可以表明一个范围是一个 ROW,所以我可以向它添加元数据?

标签: google-apps-scriptgoogle-sheetsmetadata

解决方案


一旦我发布问题,我就会找出答案。

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("2:2").addDeveloperMetadata("rowStatus", "processing");

通过假装创建条件格式规则找到答案,并在指示范围时选择行号以查看 Google Sheets A1 表示法如何表示行。


推荐阅读