阵列成一列不起作用-Google脚本

时间:2018-11-22 00:05:01

标签: google-apps-script

因此,我是Google脚本的新手,并编写了一个代码,该代码使我可以从另一个名为“ BSP_SampleList”的工作表中获取唯一值,并将其写入另一个名为“ Email”的工作表中。

但是,我很难在一列中列出值。我成功地在一个单元格中使用TSCAnumbsheet.getRange(i + 1,2,1,1).setValue([a.join(',')])列出了值。我想获取这些值并将它们写在一列中,如果有意义的话,可以使用不同的行。

例如:如果我有三个项目[苹果,橙子,葡萄]。与其以这种方式编写,不如将其编写为: 在A栏中 1个苹果 2橙 3颗葡萄 不是[苹果,橙,葡萄]。

这是我的代码:

    function myArray() {
var ss, s, s2, a, b;
ss = SpreadsheetApp.getActive();
s = ss.getSheetByName("BSP_SampleList").getRange(2, 22, 22).getValues();
s2 = ss.getSheetByName("BSP_SampleList").getRange(2, 26, 26).getValues();
a = [];
a.push(s[0]);
b = [];
b.push(s2[0]);

  for (var n = 1; n < s.length; n++) {
      if (a.join().indexOf(s[n].join()) == -1) {
        a.push(s[n])}}
     for (var m = 1; m < s2.length; m++) {
        if (b.join().indexOf(s2[m].join()) == -1) {
        b.push(s2[m])
        Logger.log(b.length)}}

  var data = ss.getSheetByName("Sheet1").getDataRange().getValues();
  var TSCAnumb = ss.getSheetByName("BSP_SampleList").getDataRange().getValues();
  var TSCAnumbsheet = ss.getSheetByName("Sheet1");
  var TSCAnumb2 = ss.getSheetByName("BSP_SampleList");
  var Emailsheet = ss.getSheetByName("Email");
  var Rangea = a.length
  var Rangeb = b.length

  Logger.log(Rangea)


  for(var i = 0; i<data.length;i++){
    if(data[i][0] == TSCAnumb[1][0]){ //[0] = column A
      TSCAnumbsheet.getRange(i+1,2,1,1).setValue([a.join(', ')]) //container number
      TSCAnumbsheet.getRange(i+1,3,1,1).setValue([b.join(', ')]) //container name
      TSCAnumbsheet.getRange(i+1,7,1,1).setValue(TSCAnumb2.getLastRow()-1) //number of samples
      TSCAnumbsheet.getRange(i+1,8,1,1).setValue(TSCAnumb2.getRange("A3").getValue()) //sample type
      Emailsheet.getRange(2,4,1,1).setValue(TSCAnumb2.getRange("A2").getValue()) //TSCAbatch
      Emailsheet.getRange(2,5,Rangea,1).setValue(a)
      Emailsheet.getRange(2,6,Rangeb,1).setValue(b)
    }

      else{
        Emailsheet.getRange(2,4,1,1).clearContent(); //TSCAbatch
    }
      //Emailsheet.getRange(i+1,4,1,1).setValue(TSCAnumb2.getRange("A2").getValue()) //TSCAnumb

      //Emailsheet.getRange(i+1,5,1,1).setValue([a.join(', ')]) //container number
      //Emailsheet.getRange(i+1,6,1,1).setValue([b.join(', ')]) //container name
    }
      }  

0 个答案:

没有答案