Google 工作表:在列中输入特定值时弹出消息

Google Sheets: Pop up message when a specific value is entered in a column

这是我第一次尝试在 Apps 脚本中为 Google 表格创建内容,我有点 stuck/overwhelmed。在我所做的阅读中,我认为我正在尝试的是相当基础的。我只是没有得到解决方案,所以我需要一个推动...

需要: 我有一个 sheet 正在跟踪已检查并返回到中心区域的设备。 sheet 有多个布局相同的页面。

在每一页上我都有一列,其中 (3) 个不同的选项可以从下拉列表中选择。 进入、退出和不可用

对于 (3) 个条目选项中的每一个,我希望在更改条目时显示弹出消息。

所以在 F2:F100 的范围内,如果条目从“IN”更改为“OUT”,我希望弹出一个消息“清除右侧的所有字段。 “和一个“确定”按钮。

我发现了很多示例,可以在更改任何字段或打开 sheet 时弹出。我坚持将这些弹出窗口限制为仅 select fields/ranges/pages

谢谢大家的帮助。

解决方案

您可以通过 onEdit trigger, where the pop-up message will only run if 参考下面的示例脚本 运行 任何选定的单元格都在 F 列下,如果该单元格的值在任何 [=44= 上更改为“OUT” ] 传播sheet 文件:

function onEdit() {
  var ss = SpreadsheetApp.getActive();
  //Check if selected cell is in column F (or col #6) was changed to "OUT"
  if(ss.getActiveCell().getColumn() == 6 & ss.getRange(ss.getActiveCell().getA1Notation()).getValue() == "OUT"){
    SpreadsheetApp.getUi().alert('Clear all fields to the right.');
  }
}

如果你需要添加更多条件,比如你只想 运行 脚本到特定的 sheet 名称,你可以在 [=17= 上添加 ss.getSheetName() == '[Name of the sheet]' ] 条件由 & 符号分隔,如下例所示:

if(ss.getSheetName() == 'Sheet2' & ss.getActiveCell().getColumn() == 6 & ss.getRange(ss.getActiveCell().getA1Notation()).getValue() == "OUT"){
    SpreadsheetApp.getUi().alert('Clear all fields to the right.');
  }

示例结果:

如果通过下拉选项将列 F 上的选定单元格从 IN 更改为 OUT

弹出消息“清除右侧的所有字段。”将显示在 sheet