首页 > 解决方案 > 我的 If 语句没有返回基于单元格为空白或有数据的值

问题描述

我的 If 语句说,如果它正在查看的单元格为空,则返回 x,如果其中有一个值,则 Y... 记录器在单元格中显示数据,但它仍然返回 x!

我试过改成isblank,是null,是“”。我可以看到它正在记录数据,但它仍在返回空白单元格的答案

function trackingSheetUpdate() {

  var now = new Date();

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var sourceSheet = ss.getSheetByName('Active Campaign');

  var Tracking = ss.getSheetByName('Tracking')

  var getUpdate = sourceSheet.getRange(2, 5).getValue();

  var dateResult = now - sourceSheet.getRange(2, 6).getValue();

  var openSS = SpreadsheetApp.openByUrl(getUpdate).getSheetByName('Sheet1')

  var weeklyUpdate = openSS.getRange(2, 1).getValue();

  if (dateResult > 1 && dateResult <= 7); {

    if (weeklyUpdate == null, Tracking.getRange(2, 2).setValue("x"));

    else

      ("Y");
  }
}

如果单元格为空白,我想要 x,如果单元格不是空白,我想要 Y,但它只返回 x!最终,我将在动态范围内循环,但首先要掌握基础知识!

标签: google-apps-script

解决方案


我自己创建了一些测试表数据,下面的代码似乎可以按您的预期工作。

function trackingSheetUpdate() {
  var now = new Date();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('Active Campaign');
  var trackSheet = ss.getSheetByName('Tracking');
  var getUpdate = sourceSheet.getRange(2, 5).getValue();
  var dateResult = now - sourceSheet.getRange(2, 6).getValue();
  var openSheet = SpreadsheetApp.openByUrl(getUpdate).getSheetByName('Sheet1');
  var weeklyUpdate = openSheet.getRange(2, 1).getValue();

  if (dateResult > 1 && dateResult <= 7); {
    if (weeklyUpdate == '') {
      trackSheet.getRange(2, 2).setValue("x");
    } else {
      trackSheet.getRange(2, 2).setValue("y");
    }
  }
}

当然,这取决于您的工作表数据是否正确,例如您需要var getUpdate是一个 URL。为了与脚本的其余部分保持一致,我还重命名了一些变量,并进行了一些语法更改,例如确保行尾有分号等。


推荐阅读