繁体   English   中英

如果返回Google Apps脚本GoogleSheets

[英]IF Return Google Apps Script GoogleSheets

我有一个简单的应用程序,用于监视电子表格上除2个标签之外的其他标签上的活动(onEdit),将它们分别称为“ Sheet1”和“ Sheet2”。#

代码段是:

  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheetName = sheet.getName(); 
  var Sheet1 = ss.getSheetByName("Sheet1");
  var Sheet2 = ss.getSheetByName("Sheet2");
  if (sheetName == Sheet1 || sheetName == Sheet2) return;

这不起作用,它将监视这些表上的更改。 通过尝试其他方法:

  if (sheetName == Sheet1) return;
  if (sheetName == Sheet2) return;

仍然无法正常工作。

但是,当我尝试仅一种时,例如:

  if (sheetName == Sheet1) return;

然后它将不监视Sheet1上发生的情况。

我如何才能停止查看这两张纸?

谢谢

sheetNameSheet1Sheet2即工作表名称)时,您要运行return 如果我的理解是正确的,那么该修改如何?

修改要点:

  • 在您的脚本中, sheetName是字符串。 关于Sheet1Sheet2 ,在运行var Sheet1 = ss.getSheetByName("Sheet1")var Sheet2 = ss.getSheetByName("Sheet2")之前,它们是字符串。 但是在运行这些文件之后, Sheet1Sheet2成为Sheet2对象。 此时, if (sheetName == Sheet1 || sheetName == Sheet2) return; ,“字符串”和“对象”进行比较。 这样,就无法执行所需的比较。 如果要从此比较中检索“ true”,可以通过更改为sheetName = "Sheet" 但我认为这不是您想要的。 所以为了解决这个问题,我认为有两种模式适合您的情况。 请检查它们并选择所需的图案。

模式1

通过工作表名称Sheet1Sheet2比较sheetName

修改后的脚本:

var sheetName = sheet.getName();
if (sheetName == "Sheet1" || sheetName == "Sheet2") return;

模式2

虽然我不知道有关sheetsheet.getName()从你的问题,如果你想在片比较后确认是否Sheet1Sheet2在活跃的电子表格是现有的,请修改如下。

修改后的脚本:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = sheet.getName(); 
var Sheet1 = ss.getSheetByName("Sheet1");
var Sheet2 = ss.getSheetByName("Sheet2");
if ((Sheet1 && sheetName == Sheet1.getName()) || (Sheet2 && Sheet2.getName())) return;

注意 :

  • 在此修改的脚本中, Sheet1 &&Sheet1 && sheetName == Sheet1.getName()用于检查Sheet1的存在。 Sheet2也相同。

如果我误解了您的问题,对不起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM