簡體   English   中英

在Google Apps腳本中使用范圍

[英]Working with Ranges in Google Apps Scripts

我在Google Spreadsheets中編寫了一個簡單的函數。 我想在參數中輸入兩個范圍,如下所示:

=EctsPartial(C3:C4, E3:E4)

對於以下功能,我寫道:

function EctsPartial(rangeA, rangeB) {

  Logger.log(rangeA+"  "+rangeB);
  var noten = SpreadsheetApp.getActiveSheet().getRange(rangeA).getValues();
  var ects = SpreadsheetApp.getActiveSheet().getRange(rangeB).getValues();

  for(var i=0; i < SpreadsheetApp.getActiveSheet().getRange(rangeB).getHeight(); i++){

      if(noten[i] != "" && noten[i] != 5) {
      summe = summe - 0;
      ects[i] = ects[i] - 0;

      summe = summe + ects[i];
   }
    Logger.log(i+":");
    Logger.log(summe);
   } 

  return summe;  

};

但是程序不斷告訴我,getRange()的參數不正確。 如果我手動鍵入 “ C3:C4” (包括“”),則可以,但不能,請問我在做什么錯?

我認為這就是您想要做的。 這用於自定義電子表格功能。

在電子表格中,以下代碼允許您鍵入=EctsPartial(C1)而不是=EctsPartial("C1") 如果將return noten放在腳本上,它將獲得C1的值

function EctsPartial(rangeA, rangeB) {
  if (rangeA.map) {
    return rangeA.map(EctsPartial);
  } else {
    var noten = rangeA;
  }
}

https://developers.google.com/apps-script/guides/sheets/functions#optimization

幾個選項包括:

1。

=EctsPartial("C3:C4"; "E3:E4")

.GS:

function EctsPartial(rangeA, rangeB) {
  var noten = SpreadsheetApp.getActiveSheet().getRange(rangeA).getValues();
  var ects = SpreadsheetApp.getActiveSheet().getRange(rangeB).getValues();
  var sum = 0;
  noten.forEach(function(value) {
    sum += value[0];
  });
  ects.forEach(function(value) {
    sum += value[0];
  });
  return sum;
}

在此處輸入圖片說明

2。

=EctsPartial(C3:C4; E3:E4)

.GS:

function EctsPartial(rangeA, rangeB) {
  var sum = 0;
  rangeA.forEach(function(value) {
    sum += value[0];
  });
  rangeB.forEach(function(value) {
    sum += value[0];
  });
  return sum;
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM