我的If语句未基于单元格为空或有数据返回任何值

时间:2019-05-16 14:01:57

标签: google-apps-script

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

我尝试更改为isblank,为空,为“”。我可以看到它正在记录数据,但仍然返回空白单元格的答案

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!最终,我将在一个动态范围内进行循环,但是想先掌握基础知识!

1 个答案:

答案 0 :(得分:0)

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

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。为了与脚本的其余部分保持一致,我还重命名了一些变量,并进行了一些语法上的更改,例如确保对结束行使用分号等。