Lui*_*uis 1 javascript google-apps-script
J
1
2
3
Run Code Online (Sandbox Code Playgroud)
这是代码:
function sumsald () {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var s1 = ss.getSheetByName ("rendPendForm");
var dataRange = s1.getDataRange ();
var lastrow = dataRange.getLastRow ();
var values = s1.getRange (2.10, lastrow, 1) .getValues ();
var sum = 0;
for (var i = 0; i <values.length; i ++) {
result = values [i] [10] + sum;
Logger.log (result);
}
s1.getRange (i + 1, 10) .setValue (result);
}
Run Code Online (Sandbox Code Playgroud)
结果脚本# NUM!
Logger.log==NaN
6 预期
谢谢,路易斯。
小智 5
不确定在示例中J是第一行的列名还是值。无论如何,要从 J 列的第一行开始获取值一直到索引上的行lastrow:
var values = s1.getRange (1, 10, lastrow, 1) .getValues ();
Run Code Online (Sandbox Code Playgroud)
此外,在将数字相加时,最好忽略非数字值。例如,如果您将来自标题行的字符串和来自下方行的数字相加,您将在 Javascript/GoogleScript 中得到两个串联的字符串,而不是错误或忽略该字符串。仅当values[i][0]包含数字时才附加到总和(否则添加0到总和即什么都不做):
result += typeof values[i][0] == 'number' ? values[i][0] : 0;
Run Code Online (Sandbox Code Playgroud)
下面是完整示例:
function sumsald () {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var s1 = ss.getSheetByName ("rendPendForm");
var dataRange = s1.getDataRange ();
var lastrow = dataRange.getLastRow ();
var values = s1.getRange (1, 10, lastrow, 1) .getValues ();
var result = 0;
for (var i = 0; i <values.length; i ++) {
result += typeof values[i][0] == 'number' ? values[i][0] : 0;
Logger.log (result);
}
s1.getRange (i + 1, 10) .setValue (result);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4045 次 |
| 最近记录: |