【发布时间】:2017-09-19 15:27:01
【问题描述】:
我想根据输入的时间信息和未来 30 天进行简单的倒计时......单元格“Dat”将输入时间信息,单元格“日期”将有 30 天未来与单元格 D 倒计时。现在我已经能够注册输入的时间和未来 30 天。每次我在单元格“剩余时间”中运行它时都会收到错误请告诉我是否可以帮帮我!
function onEdit(event)
{
var timezone = "GMT-04:00";
var timestamp_format = "M/dd/yyyy"; // Timestamp Format.
var updateColName = "Name";
var updateColName2 = "Address";
var updateColName3 = "Address";
var timeStampColName = "Date";
var timeStampColName2 = "Dat";
var timeStampColName3 = "Date";
var timeStampColName4 = "Time";
var updateColName4 = "Address";
var timeStampColName5 = "Time Left";
var updateColName5 = "Address";
var sheet2 = event.source.getSheetByName('Sheet1');
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers2 = sheet2.getRange(1, 1, 1,
sheet2.getLastColumn()).getValues();
var headers4 = sheet2.getRange(1, 1, 5,
sheet2.getLastColumn()).getValues();
var headers5 = sheet2.getRange(1, 1, 4,
sheet2.getLastColumn()).getValues();
var dateCol2 = headers2[0].indexOf(timeStampColName2);
var dateCol4 = headers4[0].indexOf(timeStampColName4);
var dateCol5 = headers5[0].indexOf(timeStampColName5);
var updateCol2 = headers2[0].indexOf(updateColName2); updateCol2 =
updateCol2+1;
var updateCol4 = headers4[0].indexOf(updateColName4); updateCol4 =
updateCol4+1;
var updateCol5 = headers5[0].indexOf(updateColName5); updateCol5 =
updateCol5+1;
if (dateCol2 > -1 && index > 1 && editColumn == updateCol2)
{ var cell2 = sheet2.getRange(index, dateCol2 + 1);
var date2 = Utilities.formatDate(new Date(), timezone,
timestamp_format);
cell2.setValue(date2);
}
if (dateCol4 > -1 && index > 1 && editColumn == updateCol4)
{ var cell4 = sheet2.getRange(index, dateCol4 + 1);
var date = new Date();
var secondDate = new Date(date.setDate(date.getDate()+ 30));
cell4.setValue(secondDate);
Logger.log(secondDate);
}
if (dateCol5 > -1 && index > 1 && editColumn == updateCol5)
{ var cell5 = sheet2.getRange(index, dateCol5 + 1);
var future = Utilities.formatDate(new
Date(date.setDate(date.getDate()+ 30)), timezone, timestamp_format);
//var future = new Date(); // get NOW
//future.setDate(future.getDate() + 30); //Add the specified days to
the current time
cell5.setFormula( '=' + secondDate + '- now()');
这是我尝试运行代码的示例链接。
https://docs.google.com/spreadsheets/d/1brkXxkSut3xUVK2ouUsUaMyle-EnRV4dzxWVAaXIabg/edit?usp=sharing
如果您需要我可能遗漏的任何其他内容,请告诉我!
提前致谢,
马丁
【问题讨论】:
-
你遇到了什么错误?
-
单元格中只有一条错误消息。它过于字面化地获取信息,例如“星期四,9 月 12:00:00 pm”,因此很难减去或添加它。
标签: java google-apps-script google-sheets-api