2017-06-30 2 views
0

私はイニシャルを入力すると、スクリプトタイムスタンプを次の列に挿入します。 := B9-Time(4,4,0))は、いくつかの他のオフセットシミュレートされたタイムスタンプを反映する。Googleシートにタイムスタンプを付ける必要がありますが、4時間前に反映する

私が今問題にしているのは、後続のエントリがリアルタイムであり、タイムゾーンのトリックを使用しないように刻印されていなければならないということです。基本的には、現在のタイムスタンプから4時間を引いたものを表示するスクリプトが必要です(これは、シミュレートされた時間のバックフィルを自動化する私の「セットアップ」セルのためのものですが)目的を理解することが私の質問を明確にするのに役立つ場合)。ここで

は私の作業スクリプト(マイナス電流から4時間を減算する能力)である:

if(x.getName() == "Vitals") { //checks that we're on the correct sheet 
    var y = x.getActiveCell(); 
    if(y.getColumn() == 1) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     nextCell.setValue(new Date()); 
    } 
    } 

答えて

0

これは私がテストするために使用されるコードです。時間調整部分を引き出すことができます。

function onEdit(e) { 
    x=e.source.getSheetName() 
    if(x == "Vitals") { //checks that we're on the correct sheet 
    var y = e.range.getSheet().getActiveCell(); 
    if(y.getColumn() == 1) { //checks the column 
     var nextCell = y.offset(0,1); 
     if(nextCell.getValue() === '') //is empty? 
     var d = new Date();// d is now a date object 
     var h=d.getHours() 
     var m=d.getMinutes() 
     var s=d.getSeconds() 
     var nh=h-4 //subtract 4 hrs 
     d.setHours(nh,m,s,0); //set the new hours , min Secs and milliSecs as well 
     nextCell.setValue(d); 
    } 
    } 
} 

以下は、共有テストスプレッドシートへのリンクです。コピーして試してみてください。

https://docs.google.com/spreadsheets/d/1sMcd0ivy_LE8kkCto264ETjzMubRniWcdFYzYoh-Cj8/edit?usp=sharing

+0

あなたは正しい場所に挿入する方法を私に指示することができるだろうか?もう1人の紳士は、スクリプトエディタで実行されないため、これらのイベントトリガーをそれぞれの列/セルに割り当てる必要があると教えてくれました。スクリプトのVITALSセクションを消去し、条件付きfotmatting - >カスタム式の校正値として「イニシャル」列(1列目)の最初のセルにこれを追加すると、オフセットボックス(列2)に何も起こりません。再度、感謝します! – Paul

+0

テストスプレッドシートへのリンクを回答に追加しました。これであなたの質問に答えることができない場合は、スプレッドシートを共有してみます。 –

+0

スクリプトエディタに移動します。 onOpen関数の最後の行の最後にカーソルを置きます(19行目)。 Enterを押すと新しい行が新規作成されます。上記のコードをコピーして貼り付けてください。保存して、あなたは行くのが良いはずです。以下はスプレッドシートのコピーへのリンクです。 https://docs.google.com/spreadsheets/d/1y0hnOS4NWWQOjocSNAge3T7k2ItZktBvZ37jXyCdcbo/edit?usp=sharing –

関連する問題