[英]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.