使用if和else if的onEdit脚本有问题

时间:2015-12-21 19:56:46

标签: google-apps-script google-sheets

编写此脚本是为了在公司项目日志中使用,以帮助跟踪旧作业的历史记录。

所有“if”和“else if”语句都按照预期的方式工作,除了一个小小的瑕疵我似乎无法指出,我希望有些人可以看到我明显忽略的内容。

我的snafu示例:

假设我在// The Lat/Lng var lat = the_position.lat; var lng = the_position.lng; 并且我在第(4)栏中更改了一个名称,它将触发我的“sheetName("Parking lot")”语句,这就是问题所在:它应该只触发“{{1 “与if相关联。当我在if else时,我只希望触发该声明。

我也尝试在我的陈述中使用sheetName,这似乎没有什么区别。

sheetName("Waiting to be assigned")

2 个答案:

答案 0 :(得分:2)

您可能尝试过这样的事情:

function onEdit(e) {
  if (SpreadsheetApp.getActiveSheet().getName() == "Waiting to be assigned") {
    // Wall of text
  }
}

这里的问题是你得到了电子表格的名称,而不是工作表。

稍微优雅的解决方案是使用e参数 e是一个事件对象,其中包含有关激活触发器的事件的各种信息 所以你的功能看起来像这样:

function onEdit(e) {
  if (e.range.getSheet().getName() == "Waiting to be assigned") {
    // Wall of text
  }
}

显然,在范围内你还可以检查它是否真的是第4列。

答案 1 :(得分:0)

我同意@ robin-gertenbach,另外你也会这样做。

  • 选择资源 - >当前项目的触发器。 - >单击链接添加 现在一个。
  • 在“运行”下,选择要由其执行的功能 触发。 (在你的情况下是“onEdit(e)”)
  • 在“活动”下,选择“从
  • 在“活动”下,选择“来自电子表格。”
  • 从下一个下拉列表中,选择On On edit。单击“保存”。

玩得开心!