【问题标题】:Using IF to evaluate an specific string使用 IF 评估特定字符串
【发布时间】:2020-08-25 18:07:54
【问题描述】:

我有一个 Google 工作表工作计划项目,我想将一行数据移动到另一个工作表,但前提是工作由我完成。我做了类似的事情

if(s.getName() == "Job Planning" && r.getColumn() == 4 && r.getValue() == "Complete and Sent") {
   var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Complete and Sent");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 2, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
} 

问题是我不能做--

if(name.getValue() == "Miguel") {
} 

因为在同一个文本框或单元格中有多个名称。

【问题讨论】:

  • 单元格中的值究竟是什么?快速而肮脏的修复将是 name.getValue().includes('Miguel')name.getValue().indexOf('Miguel') > -1
  • 你可以做某种正则表达式,或者检查该单元格是否在任何地方包含 Miguel
  • 感谢您的回答@Taplar。单元格中的值始终是任何项目负责人的姓名。有最大。每个项目中有 3 个名称,我想将我的项目自动发送到另一个工作表。
  • 我实际上并没有以编程方式询问它包含什么。我想知道一个实际值的例子。
  • 请添加一些样本数据输入和对应的预期结果。

标签: javascript string if-statement google-apps-script google-sheets


【解决方案1】:

您需要使用event object user

示例代码 sn-p 绑定到可安装触发器:

function InstallableEdit(e) {
  var ss = SpreadsheetApp.getActive();
  var r = e.range;
  var s = r.getSheet();
  var user = e.user;
  if(user == "EMAIL_OF_THE_USER" && s.getName() == "Job Planning" && r.getColumn() == 4 && r.getValue() == "Complete and Sent") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Complete and Sent");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 2, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
  } 
}

【讨论】:

    【解决方案2】:

    这看起来像一个 onEdit() 函数,可以这样写,并且需要 onEdit() 简单触发器的事件对象。

    function onEdit(e) {
      const s=e.range.getSheet();
      if(s.getName() == "Job Planning" && e.range.columnStart==4 && e.value=="Complete and Sent") {
        var targetSheet = e.source.getSheetByName("Complete and Sent");
        var target = targetSheet.getRange(targetSheet.getLastRow() + 2, 1);
        s.getRange(e.range.rowStart,1,1,s.getLastColumn).moveTo(target);
      } 
    }
    

    onEdit event object

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多