我希望你能原谅我,如果我不知道我在说什么,因为我没有关于如何编写代码的真实指示。但是,如果你愿意,我会尽力解释清楚。
展望未来,我希望创建一个在打开Google表格时出现的提示,该提示会显示一行文字和一行字符值。我可能会以最困难的方式做到这一点,但这是我到目前为止所做的一切:
SpreadsheetApp.getUi()。alert(' Text to here' return function lookup(today(),A1:B6));
我确定这看起来完全是胡说八道,但那就是我在这里的原因!我需要能够回忆起包含今天日期的行中第一个单元格的内容。也就是说,如果工作表看起来像这样:
ABC 3/21 3/28 4/1 4/4 4/7
DEF 3/20 3/29 4/2 4/5 4/9
我需要它阅读"文字在这里ABC"在4月4日"文字在这里DEF" 4月5日。
我希望这是有道理的。如果您需要更多信息,请告诉我们!我感谢所提供的任何帮助。
答案 0 :(得分:0)
好问题。首先,我建议您查看Browser.msgBox()
(documentation here)。
所以这不是一件容易的事情,因此可能需要一些工作来了解这里发生了什么。但我created a sheet适用于此。这是代码:
function onOpen() {
// get the values from the spreadsheet
var ss = SpreadsheetApp.getActiveSheet();
vals = ss.getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).getValues();
// get a greeting based on the date
var greeting = greetingsForDate(vals, formatDate(new Date()));
// display the greeting
Browser.msgBox("Text goes here " + greeting)
}
function greetingsForDate(vals, dateString) {
var greetings = []
// loop through each row
for(var rowNum = 0; rowNum < vals.length; rowNum++) {
rowContent = vals[rowNum];
// loop through each column
for(var columnNum = 1; columnNum < rowContent.length; columnNum++) {
var cellVal = rowContent[columnNum];
// return the value from column A if the current date is in the row
if(typeof cellVal === "object" && formatDate(cellVal) === dateString) {
greetings.push(rowContent[0]);
}
}
}
if(greetings.length === 0) {
return "(none)";
} else {
return greetings.join(", ");
}
}
// returns a formatted date like 04/02/14
function formatDate(date) {
return Utilities.formatDate(date, Session.getScriptTimeZone(), "MM/d/y");
}
它假设工作表的结构如下:
ABC 3/21/2014 3/28/2014 4/1/2014 4/4/2014 4/7/2014
DEF 3/20/2014 3/29/2014 4/2/2014 4/5/2014 4/9/2014
如果此代码没有多大意义,我强烈建议您查看codecademy.com或codeschool.com这样的网站。 Codecademy的JavaScript course特别好。
祝你好运!编辑以返回多个值,并根据评论检查单元格是否为日期。