我对谷歌应用脚本编程非常熟悉,根据我的知识,我编写了以下代码(我会马上说它不能正常工作):
function ResponseTime(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = SpreadsheetApp.getActiveSpreadsheet().getSheetName();
var range = sheet.getActiveRange();
var data = range.getValues();
if(sheetName == "Вопросник" && range.getColumn() == 17){
for (var i=0;i < data.length;i++){
if (data[i][0]>0) {
(data[i][0])=Date.parse(data[i][0]);
var time1 = (data[i][0])}
else {
}
}
}
if(sheetName == "Вопросник" && range.getColumn() == 18){
for (var i=0;i < data.length;i++){
if (data[i][0]>0) {
(data[i][0])=Date.parse(data[i][0]);
var time2 = (data[i][0])}
else {
}
}
for (var i=0;i < data.length;i++){
if (data[i][0]>0 && time2>0) {
let date = new Date(time2);
range.offset(i,+1,1,1).setValue(date.getHours()+':'+date.getMinutes());}
else {
}
}
}
}
我在第 17 列和第 18 列的表格中有两个日期,我并没有真正找到如何计算它们之间的差异,所以我决定首先使用 Date.parse (str) 从两个单元格中获取时间戳,然后找到差异以毫秒为单位并将其转换为“小时:分钟”。但最终,他的计划失败了。据我了解, .getColumn() 方法的主要问题是它允许您使用某个范围,即只有一列,它不适合我。有什么方法可以代替它?而且我还假设我在代码中写了很多额外的东西,可以以某种方式简化它,扔掉一些东西吗?也许我最初走错了路,一切都可以更容易地实现?我很乐意接受任何建议。