2016-11-23 7 views
1

同じ枚数のシートが2枚あり、すべての列に同じヘッダーがあります。プロジェクトが「準備完了」のとき、その行のデータ検証で「準備完了」を選択し、その行をプロジェクトシートにコピーして、予測されたプロジェクトシートからその行を削除したいと考えています。私はコンテンツが、予測シート上のそのコピーされた行から拭き取られ、コンテンツを持つ他のすべての行が上に移動される可能性がある場合には好きです。Googleスプレッドシートを別のシートにコピーして貼り付け、最初のシートからコンテンツを削除します。

そのまま、スクリプトは予測プロジェクトシートから「準備完了」ジョブをコピーし、最後の非空行のプロジェクトシートに貼り付けます。しかし、予測されたシートからその内容をクリアすることは望ましくないようです。また、私は準備が整い次第、すべてのプロジェクトをシフトアップする機能を追加したいと思います。内容をクリアするには

function onEdit(e) {  //Move forecasted project to Projects 
    if (e.value === 'Ready') { 
    var sheet = e.range.getSheet(); 
    if (sheet.getSheetName() == 'Projects Forecast') { // Name of the sheet with the forecasted projects 
     logSheet = e.source.getSheetByName('Projects'); // Name of the Projects sheet 
     var row = e.range.getRow(); 
     var lastRow = logSheet.getLastRow(); 
     var range = sheet.getRange(row, 1, 1, sheet.getLastColumn()); 
     range.copyTo(logSheet.getRange(lastRow + 1, 1),{contentsOnly:true}); 
     sheet.clearContents(row); 
    } 
    } 
} 

答えて

1

range.clearContent(); 

でsheet.clearContents(行)を置き換えるしかし、私は

sheet.deleteRow(row); 
であなたは、単にsheet.clearContents(行)を置き換えた行を削除することを示唆していることがあり

と同じ行数が本当に必要な場合は、行を挿入することができます

sheet.insertRowsAfter(sheet.getMaxRows(), 1); 

シートの最後の行の書式を保持する必要があります。

関連する問題