向现有脚本添加 for/next 循环[已解决]

问题描述 投票:0回答:1

我有这个简单的代码,它获取我的范围并提供 colDK [0] 中的值,它会将内容复制到我的目标表上。

function send_purchase_invoices() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("MAIN");
  var dstSheet = ss.getSheetByName("purchase_invoices");

  var data_range = srcSheet.getRange('DK4:DR18'); 
  var data_data = data_range.getValues();
  var data_clean  = data_data.filter(function (r) {return r[0]});

  var lr = dstSheet.getLastRow(); 

  dstSheet.getRange(lr+1, 1,data_clean.length,8).setValues(data_clean); 
}

我只是想更改它,因此如果 colDK 中没有值,它只会复制数据。

我认为这里的这一行需要更改,但我不知道如何更改。

  var data_clean  = data_data.filter(function (r) {return r[0]});

如有任何建设性建议,我们将不胜感激。

google-apps-script
1个回答
1
投票

您可以使用逻辑 NOT

完整代码:

function send_purchase_invoices() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("MAIN");
  var dstSheet = ss.getSheetByName("purchase_invoices");

  var data_range = srcSheet.getRange('DK4:DR18'); 
  var data_data = data_range.getValues();
  
  var data_clean  = data_data.filter(function (r) {return !r[0]});
  var lr = dstSheet.getLastRow(); 

  dstSheet.getRange(lr + 1, 1, data_clean.length, 8).setValues(data_clean); 
}

您只需将 not

!
放入函数的值中,这样它就会过滤掉没有任何值的
DK
的值。

  var data_clean  = data_data.filter(function (r) {return !r[0]});

示例输出:

enter image description here

注意: 我在此示例输出中使用的范围仅用于测试目的,以演示代码的工作原理。

参考:逻辑非(!)

© www.soinside.com 2019 - 2024. All rights reserved.