2017-09-09 7 views
0

Googleスプレッドシートが新しく、次のことを試してみました。私は2つの列を持っています:開始タイムコードを含むCと終了タイムコードを含むD。 3列目(F)には、開始タイムコードと終了タイムコードの結果として得られるフィルムキューの長さが含まれます。タイムコードはスクリプトから生成されるため、結果を含むセルを別の形式にエクスポートすることはできません。だから私は値として列Fの結果を印刷する4列目を作成しようとしています。私はそれを行うことができる少しのスクリプトを書くことができた。それは次のようになります。GoogleスプレッドはonEditスクリプトを実行します

function getRangeValuesEP01() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var range = ss.getSheetByName("EP01").getRange('F3:F100').activate(); 
var values = range.getValues(); 
return values; 
}; 

事がある、それが自動的に実行されません、私は

CまたはD

にタイムコードのいずれかを編集だから私はこれをしようとしたとき:

function onEdit(e) { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet() 
    var sheetName = sheet.getName(); 
    if (sheetName == "EP02" || sheetName == "EP01") { 
    var range = sheetName.getRange('F3:F100').activate(); 
    var r = sheetName.getActiveRange(); 
    if (r.getColumn() == 4) { 
     var col = r.getColumn(); 
     if (col >= 3 && col <= 100) { 
     sheetName.getRange(r.getRow(),5); 
     var values = range.getValues(); 
     } 
    } 
    } 
} 

それは私に間違いを与えませんが、何もしません。おそらく実際には意味をなさないでしょう。私が言ったように、私はそれらのスクリプトの初心者です。そして、CとDの両方の列で編集を探す必要があることを考慮していません.CまたはDを変更したときに既に結果を更新するので、Fを見るだけで十分ですか?

誰かが私をここに正しい方向に押し込むことができますか?

答えて

0

読むコメント:

function myonEdit(e) 
{ 
    var sheet=e.source.getActiveSpreadsheet(); 
    var sheetName=sheet.getName(); 
    if(sheetName=="EP02" || sheetName=="EP01") 
    { 
    var r=sheet.getRange('F3:F100');//I made changes up to this point but the next line makes no sense so rethink it in light of changes 
    if (r.getColumn()==4)//This line doesn't make any sense because you set range to F3:F100 F is column 6 so it will never be 4 
    { 
     var col= r.getColumn(); 
     if (col >= 3 && col <= 100) 
     { 
     sheetName.getRange(r.getRow(),5); 
     var values = range.getValues(); 
     } 
    } 
    } 
} 
関連する問題