2013-03-11 42 views
3

我對Google腳本編程不熟悉。我想檢查單元格中的值是否爲日期,如果是,則更改日期的默認格式,然後返回新格式的日期值。如果單元格中的值爲日期,則運行自定義函數

這裏是我想什麼一個例子:

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

這可能嗎?

回答

8

使用下面的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中都有很多這方面的例子。

相關問題