[英]Google script: How to hide a row if a cell contains a date 10 days older than today's date
[英]How to use Google Sheet's app script to add 90 days to user inputted date and email if new date is today's date
如何在谷歌表格中获取日期以在用户输入日期后 90 天自动生成。 所以,我有两列,在 J 列中,我将输入我第一次访问患者的日期。 然后在 K 列中,日期应在第一次访问后自动填充 90 天。 但是第二个日期必须自动填充,一旦我们到达这个日期,脚本应该自动发送 email。 我尝试使用谷歌表本身以简单的方法 go 但问题是一旦删除一行,整个列的公式就会被删除。
在问这个问题之前,我试着看看这个其他的解决方案: 如何从谷歌表格中添加日期到日期? 但我还是有点失落。
现在,我也知道谷歌表格本身中有一个名为 TODAY() 的 function,我也尝试过。 但问题是,如果某人/用户删除了一行,那么我的 TODAY() 公式将丢失 rest 行。 这就是为什么我需要在 App 脚本中执行此操作。 任何人都可以请帮我吗? 到目前为止,我有以下代码。
function DateCompare() {
const ss = SpreadsheetApp.getActiveSheet();
const dataRange = ss.getDataRange();
const dataRangeVals = dataRange.getValues();
const headers = 2;
var getNewDate = new Date();
var getDate = new Date().getDate();
var getMonth = new Date().getMonth()+1;
var getYear = new Date().getFullYear();
var dateGlued = getMonth + "/" + getDate + "/" + getYear;
for(n=2;n<dataRangeVals.length;++n){
var cell = dataRangeVals[n][10]; // x is the index of the column starting from 0
var formattedDate = Utilities.formatDate(new Date(cell), "GMT", "MM/dd/YYYY");
if (dateGlued.valueOf() === formattedDate.valueOf()) {
Logger.log("Date Matched!")
}
}
}
function ifItsBeen90Days() {
const ss = SpreadsheetApp.getActiveSheet();
const dataRange = ss.getDataRange();
const dataRangeVals = dataRange.getValues();
const headers = 2;
dataValues
.filter(row => row[10] !== '' && row[11] !== "") //filtered data where row[9] is empty
.forEach(row => {
let message =
row[0] +
'\n' +
row[1] +
'\n' +
row[2] +
'\n' +
row[3] +
'\n' +
row[4] +
'\n' +
row[5];
let email = row[13];
let subject = 'Sending emails from a Spreadsheet';
MailApp.sendEmail(email, subject, message);
Logger.log(`${subject}: ${message} sent to ${email}`);
});
}
当您可以简单地使用公式来检查所需的标准时,为什么还要使用 GAS。 标准(基于图像)是:
因此,该公式等于以下公式,只需确保将列格式化为日期。
=IF(ISDATE(J2); J2+90; "")
所以现在我们已经确定了日期。
然后,为了在该计算日期自动发送电子邮件,您需要每天运行触发器。 然后,该触发器运行特定的 function,然后检查是否有任何行包含今天的日期。 如果是,则发送 email,如果不是,则不发送。 将活动记录到工作表是最佳实践,这样您就可以看到活动已发送的确认信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.