2017-05-03 18 views
0

ここでは初心者に苦労して、スクリプトを完成させようとしています。スクリプトを投稿することから始めましょう。If/Elseスクリプトで苦労している

私は私のスクリプトがやりたいことは、このようになった場合/ else文を持つ//クリアラインの前にある
function dailyclear(e) 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Today'); 

    sheet.copyTo(ss) 
    var nusheet = ss.getSheetByName('Copy of Today') 
    var value = nusheet.getRange("B2").getCell(1,1).getValue() 
    SpreadsheetApp.setActiveSheet(nusheet) 

    Logger.log("Current index of sheet: %s", nusheet.getIndex()) 
    ss.moveActiveSheet(2); 
    nusheet.setName(value); 

    //Clear "Today" 
    var lastrow = sheet.getLastRow() 
    sheet.deleteRows(8, lastrow-7) 

    //Set Date Value for "Today" 
    var dd = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy"); 
    sheet.getRange("B2").getCell(1,1).setValue(dd); 
} 

... "A8内の任意のテキストがある場合は、sheet.deleterows(8を実行し、 lastrow-7)、ELSEは日付の設定にスキップします。私はそれが理にかなったことを願う基本的には、A8にデータが入力されていれば、トップ7以外のすべての行を削除したいのですが、そうでなければ何も削除しようとしません。

私はネットで読むだけでこのことを理解しようと数日間試しています。タオルを投げています。どんな助けもありがとう。私のシートへのリンクはhttps://docs.google.com/spreadsheets/d/1NZxXjMptx6ldzL2CKk6OwJcq_heIv995ZGVeIE59xNc/edit?usp=sharing

ありがとうございます!

+0

、そしてどのようなエラーメッセージが表示されます。私はあなたが範囲と価値を得ているのを見ていますが、コードがどこでA8の値を得ているのかわかりません。 lastRowから7を引く必要はありません: 'lastrow-7'あなたが8と指定した開始行。これにより、最初の7行が先頭に残ります。 –

+0

私は明確ではないかもしれませんが、If/Else/Thenのコードのすべての証拠を削除しました。私は誰かが私にそれがどのように動作するかの例を示すことができることを望んでいた、私は何もしていなかったので、私はそれをゴミ箱に入れた。 –

+0

残りのコードの仕組みに関係なく、A8から値を取得する必要があります。 'var value = nusheet.getRange(" B2 ")の行に' getCell(1,1) 'は必要ありません。getCell(1)' var testValueFromA8 = sheet.getRange( "A8")。getValue(); 、1).getValue() 'その行はB2内のデータの1つのセルしか取得していないためです。 A8は「今日」か「今日のコピー」のシートから来るべきですか? –

答えて

1

私は、これはあなたが達成するために探しているものだと思う:コードがエラーを出すと、「実行トランスクリプト」を見て、それはエラーがで発生した行何状態になる

function dailyclear() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ui = SpreadsheetApp.getUi(); 
    var sheet = ss.getSheetByName('Today'); 
    var getB2 = sheet.getRange("B2").getValue(); 

    sheet.copyTo(ss).setName(getB2); 

    var nusheet = ss.getSheetByName(getB2); 

    Logger.log("Current index of sheet: %s", nusheet.getIndex()); 
    ss.setActiveSheet(nusheet); 
    ss.moveActiveSheet(2); 

    var getA8 = sheet.getRange('A8').getValue(); 

    if (getA8) { 

     var numRows = sheet.getMaxRows(); 

     if (numRows > 8) { 
      sheet.deleteRows(8, numRows - 8); 
     } else { 
      sheet.deleteRow(8); 
     } 

    } else { 

     var newDate = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy"); 
     sheet.getRange("B2").setValue(newDate); 
    } 
}