我有一个谷歌表单,它返回一个名为'表单回复1'的谷歌电子表格的回复。 A列是时间戳(这显示为' 25/06/2015 21:36:00'在谷歌电子表格单元格中),列G和I包含我感兴趣的数值最后一行没有""值。最后一行没有""列G和I中的值可能不是完全相同的行。
1)有没有办法不重新定义" var lastRow = spreadsheet.getSheetByName(" Form response 1")。getLastRow();"在第11行?我发现这行是重置var lastRow的定义所必需的。
没有它,最后一行没有""第一列中的值是错误的(从G列的最后一行开始,使用非""值而不是向上计数,从而得到下一个非""行第I列的最后一行。
2)我正在为G和I列获取LastNonZeroDate的NaN,我试图使用getTime()函数在几毫秒内检索它。我该如何解决这个问题?
如果我检索"新日期的值(' responvalues [lastRow - 1] [0]')getTime()"相反,在一个消息框中,它给了我" 2015年6月25日星期二21:35:59 GMT + 0800(香港时间)"。
提前感谢您的帮助。
// get the data range
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
var responsesvalues = spreadsheet.getSheetByName("Form responses 1").getRange("A1:Q" + lastRow).getValues();
// get the last row in column G with non-zero value and corresponding date
for (; responsesvalues[lastRow - 1][6] == "" && lastRow > 0; lastRow--) {}
var GLastNonZero = responsesvalues[lastRow - 1][6];
var GLastNonZeroDate = new Date('responsesvalues[lastRow - 1][0]').getTime();
// get the last row in column I with non-zero value and corresponding date
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
for (; responsesvalues[lastRow - 1][8] == "" && lastRow > 0; lastRow--) {}
var ILastNonZero = responsesvalues[lastRow - 1][8];
var ILastNonZeroDate = new Date('responsesvalues[lastRow - 1][0]').getTime();
答案 0 :(得分:0)
没有电子表格来测试这只是一个"应该可以正常工作" -attempt
1)使用额外的变量来计算每列的最后一行
我使用i
来计算电子表格最后填充的行与列的最后填充行之间的差异。 .getLastRow()
的文档没有说明该值是否为零。因此脚本中的评论
2)删除new Date()
来电
// get the data range
var lastRow = spreadsheet.getSheetByName("Form responses 1").getLastRow();
var responsesvalues = spreadsheet.getSheetByName("Form responses 1").getRange("A1:Q" + lastRow).getValues();
var i;
// get the last row in column G with non-zero value and corresponding date
for (i = 0; i <= lastRow; i++) {
if (responsesvalues[lastRow - 1][6] !== "") {
break;
}
}
var GLastNonZero = responsesvalues[lastRow - i - 1][6]; // not sure about the -1
var GLastNonZeroDate = new Date(responsesvalues[lastRow - i - 1][0]).getTime(); // not sure about the -1
// get the last row in column I with non-zero value and corresponding date
for (i = 0; i <= lastRow; i++) {
if (responsesvalues[lastRow - 1][8] !== "") {
break;
}
}
var ILastNonZero = responsesvalues[lastRow - i- 1][8]; // not sure about the -1
var ILastNonZeroDate = new Date(responsesvalues[lastRow - i - 1][0]).getTime(); // not sure about the -1