我以前做过这样的电子表格,没有任何问题。它有相同的概念,但有错误或什么都不做。
在Google中,我有一个包含姓名、生日和其他信息的工作表。(日期以不同格式出现在多列中,只需尝试修复此问题。有些是从一个带有月份的单元格连接起来,另一个是从一个单元格到另一个单元格(11个月,13个白天),以产生"11/ 13“。或者只是用手打印出来的11/13,甚至与今年的日期"11/13/2017")。
我已经简化了我的代码以向您展示,它不会产生任何结果,也不会产生错误。
function birthdays() {
//Sheets Var List
var ss = SpreadsheetApp.getActive();
var births = ss.getSheetByName('Birthdays');
var lastRow = births.getLastRow();
var dateToday = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy");
//Column 10 has the dates manually entered in format MM/dd/yyyy.
//I have added today's date in the list to ensure it has something to find to trigger the message.
//Column 8 has the message I want to show on the date with the same row.
for (var i = 1; i < lastRow; ++i) {
if (dateToday == (births.getRange(i, 10).getValue()))
Browser.msgBox(births.getRange(i, 8).getValue())
}
}我尝试过几种方法,并在for循环中使用我的formatDate获取方法错误,这可能是因为它在寻找来自使用级联的单元格的生日。
我也考虑过从我的Google联系人那里得到日期,因为它们就在那里,但是我还没有找到如何搜索我的联系人组,并将当前的日期与联系人生日相匹配。
这只是为了好玩,最终我会让它发送一封电子邮件到我的手机电子邮件,给我发短信,甚至发短信给过生日的人。只需要先把生日和现在的日期相匹配。谢谢你的帮助!
发布于 2017-01-20 05:22:14
我想出了办法。工作表没有将日期单元格作为日期值或对象。这是一个字符串,因为我做了连接。
Google有一个将字符串更改为日期值的公式。用它解决了第一个问题。
第二个问题是,我的标题行是一个字符串,会立即产生一个错误,所以我将我的值改为2,而不是1,以跳过标题行,它解决了所有问题。
https://stackoverflow.com/questions/41682923
复制相似问题