0

列 I または J のいずれかが変更された場合、現在の日付と時刻を (個々の行ごとに) Google ドキュメント スプレッドシートの列 K に入れる必要があります。これは、Google スクリプトを使用する最初の試みです。

時間を実行する関数を見つけました (そして、日付を実行する方法を理解できることを望んでいます) が、セルの変更を確認し、他のセルを更新する方法がわかりません。たとえば、行 10 の列 I または J が変更された場合、行 10 の列 K は現在の日付と時刻を取得する必要があります。

function myFunction() {
  var d = new Date();
  var timeStamp = d.getTime();  // Number of ms since Jan 1, 1970

  // OR:

  var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
}
4

1 に答える 1

0

これを試してみてください - 文字列フォーマットを使用して、現在の日付を適切なフォーマットにします (必要に応じて調整できます)。注意すべき重要な点の 1 つは、ここで何を行うかに関係なく、スプレッドシート自体で指定した書式に従って値が表示されることです。したがって、何もしなければ、結果は従来の日時表現のようになります。指定した形式で表示する場合は、2 つの方法があります。1.) スプレッドシートの[形式] メニューを使用して、列全体をテキストに変換します。または 2.) (私の選択) 書き込む値の前に'. お役に立てれば。

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  // This was "MySheet" for me - change to whichever sheet you want to test
  if( s.getName() == "MySheet" ) {
    var r = s.getActiveCell();
    // Check if the column is either I or J
    var currColumn = r.getColumn();
    if( currColumn == 9 || currColumn == 10) {
      // If so, set dateCell = the current row at column J
      var dateCell = s.getRange(r.getRow(), 11);
      // Format the current date into datetime format (adjust to display how you want)
      var dateTime = Utilities.formatDate(new Date(), "GMT-8", "MMM-dd-yyyy h:mm a");
      // Set the cell
      dateCell.setValue("'" + dateTime);
    }
  }
};
于 2012-11-11T22:13:25.783 に答える