在google工作表中,我循环遍历一系列单元格,然后拆分包含时间的字符串部分。示例:6:40 AM
使用以下行从TEST:6:40 AM
派生:
text.slice(text.indexOf(":") + 1, text.length);
然后我试着看看这个时间是否与最初调用该函数的单元格旁边的单元格的时间匹配。
var sheetTime = timeSheetRange.getCell(1,1).getValue();
var time = 0;
for (var i = 1; i <= 30; i++) {
for (var j = 1; j <= 8; j++) {
time = getTime(taskRange.getCell(i,j).getValue());
if (time == sheetTime) {
return time;
}
else {
return "NO ACTIVITY";
}
}
}
问题在于,当time
和sheeetTime
的值相同时,time
不等于sheetTime
。
同时返回time
和sheetTime
打印出正确的,相同的时间。我有一种感觉,它可能与细胞时间格式有关?
时间正在从这个细胞中读取:
当sheetTime正在读取此单元格时:
那么这里发生了什么?这是格式化我必须变形还是我接近这个错误?感谢。
答案 0 :(得分:1)
问题是sheetTime
是实际时间值。理想情况下,您需要将时间与时间进行比较,但最简单的方法是使用getDisplayValue()
(根据Serge insas的建议,在对原始答案的评论中)。
var sheetTime = timeSheetRange.getCell(1,1).getDisplayValue();
作为总体建议,请尝试使用Logger.log()
语句尝试调试。您将能够确切地看到脚本正在使用的值。