在提示文本中调用函数值

时间:2014-04-03 01:04:05

标签: google-apps-script google-sheets

我希望你能原谅我,如果我不知道我在说什么,因为我没有关于如何编写代码的真实指示。但是,如果你愿意,我会尽力解释清楚。

展望未来,我希望创建一个在打开Goog​​le表格时出现的提示,该提示会显示一行文字和一行字符值。我可能会以最困难的方式做到这一点,但这是我到目前为止所做的一切:

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日。

我希望这是有道理的。如果您需要更多信息,请告诉我们!我感谢所提供的任何帮助。

1 个答案:

答案 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.comcodeschool.com这样的网站。 Codecademy的JavaScript course特别好。

祝你好运!

编辑以返回多个值,并根据评论检查单元格是否为日期。