6

Google スクリプトは初めてです。セルの値が日付かどうかを確認し、そうであれば、日付のデフォルト形式を変更してから、新しい形式の日付値を返したいと思います。

これが私が望むものの例です:

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()は、指定された範囲内のデータの 2 次元配列を返す関数を使用しました。(あなたの場合はシート全体です。)したがって、読み取った値をループして、関心のあるセルでこの関数を呼び出してから、情報をスプレッドシートに書き戻す必要があります。Google のドキュメントと Stackoverflow の両方に、この例がたくさんあります。

于 2013-06-14T13:58:05.593 に答える