【发布时间】:2019-12-29 10:57:53
【问题描述】:
我有一个应用脚本代码,它在两列中添加值并在第三列中显示结果。即将 B 列值(持续时间)添加到 D 列(持续时间),结果显示在 E 列中。但是我的代码显示错误怎么办
function adder()
{
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet5');
var lastRow = sheet.getLastRow();
var cell = sheet.getRange('B1:B'+lastRow).getValues();
var data = sheet.getRange('D1:D'+lastRow).getValues();
for (var i = 0; i < lastRow; i++){
var value1 = cell[i][0];
var value2 = data[i][0];
var range = sheet.getRange('E'+(i+1)).setFormula(value1+value2);
var formattedDate = Utilities.formatDate(new Date(range.getValue()), 'GMT', 'dd/MM/yyyy
HH:mm:ss');
}
sheet.getRange('E' + (i+1).toString()).setValue(formattedDate);
}
function dateAdd()
{
var ss =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet5');
var range = ss.getRange('E23').setFormula('D23+B23');
var formattedDate = Utilities.formatDate(range.getValue(), 'GMT',
'dd/MM/yyyy HH:mm:ss');
}
上面的代码适用于单行,我想在循环中设置它。
【问题讨论】:
-
E列的所有值都显示为ERROR only
-
您添加了 2 个持续时间,然后您想将结果更改为最新吗?我认为您也必须涉及 A 列。
-
请检查new Date(range.getValue()),范围是duration值
-
@user11982798 实际上结果只是持续时间。我尝试过 new Date(range.getValue) 也仍然出现错误。我想要 hh:mm 中的结果
-
工作表是私有的
标签: javascript datetime google-apps-script google-sheets