【发布时间】:2020-10-14 23:21:44
【问题描述】:
我有一个电子表格,第 1 行的每个单元格都有日期
只要该列与今天的日期匹配,我想返回该列号。第一个标题从单元格 B1 开始。
我正在使用以下内容,我可以让它工作,但是当我执行“返回 i”时,它总是返回“0”。
function getColumnIndex() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var lastColumn = sheet.getLastColumn();
var data = sheet.getRange(1,2,1,lastColumn).getValues(); //create an array of data from row 1
for (var i = 0; i <= data.length; i++) {
var dateToday = Utilities.formatDate(new Date(), "EST", "MM/dd/yyyy")
if (data[i] == dateToday) {break};
{
return i;
}
}
}
现在,如果我将最后一行 'return i' 切换为 'return dateToday',该函数将起作用,它会返回正确的日期,因此我知道它匹配正确(如果我将行单元格更改为其他值,它将返回那些值(如果匹配)。当我输入'return i'时,我无法让它吐出索引号。
【问题讨论】:
-
这是日期格式问题,所以您的比较不匹配?要对此进行测试,而不是“return i”,您是否可以尝试返回“data[2]”,例如,查看该格式是否与您执行“return dateToday”时得到的格式相匹配?只是一个想法......另外,我最近没有做太多编码 - 在您跳出 FOR 循环后,i 的值是否有可能丢失(设置为零)?
标签: javascript google-apps-script google-sheets