6

我是谷歌脚本的新手。我想检查单元格中的值是否为日期,如果是,则更改日期的默认格式,然后返回新的格式化日期值。

这是我想要的一个例子:

var activeCellValues = SpreadsheetApp.getActiveRange().getValues();
if ( activeCellValues = "Is_Type_Date")
       {   
          var activeCellValues = Utilities.formatDate(pubDateCell,"PST", "MM/dd/yyyy")
       }

这可能吗?

4

1 回答 1

12

使用isDate()下面的功能来完成您的要求。可以更改日期格式以满足其他需要。有关详细信息,请参阅 [ Utilities.formatDate()][3]。

// From http://stackoverflow.com/questions/1353684
// Returns 'true' if variable d is a date object.
function isValidDate(d) {
  if ( Object.prototype.toString.call(d) !== "[object Date]" )
    return false;
  return !isNaN(d.getTime());
}

// Test if value is a date and if so format
// otherwise, reflect input variable back as-is. 
function isDate(sDate) {
  if (isValidDate(sDate)) {
    sDate = Utilities.formatDate(new Date(sDate), "PST", "MM/dd/yyyy");
  }
  return sDate;
}

在您的脚本中,您使用了该Range.getValues()函数,它将返回给定范围内数据的二维数组。(在您的情况下,您的整个工作表。)因此,您需要遍历读取的值并在您感兴趣的任何单元格上调用此函数,然后将信息写回电子表格。在 Google 的文档和 Stackoverflow 上都有很多这样的例子。

于 2013-06-14T13:58:05.593 回答