特定のフォルダに入っているスプレッドシートの特定のシートから、(どちらも名前でひっぱる)
データを集約する仕組みを作っています。
おかげさまでうまく動くようになったのですが、現在の機能に、「特定のセルが空欄であればデータをコピーする、かつコピーが終わったら”済”という
文字を入れる」という動作を追加したいと思っているのですが、ifをどのあたりに入れればいいのかがわからず困っています。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
//データ集約用
function aggregateData1() {
var targetFolder = DriveApp.getFoldersByName('原稿集約').next();
var files = targetFolder.getFiles();
var outputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('生データ_集約');
if (! outputSheet) {
var outputSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('生データ_集約');
}
outputSheet.clear();
var curRow = 1;
var fileList = [];
while(files.hasNext()){
var file = files.next();
var spreadsheet = SpreadsheetApp.open(file); var sheet = spreadsheet.getSheetByName('集約用_原稿'); var id = sheet.getRange('A1').getValue(); fileList.push( { "fileName": file.getName(), "id": id } ); var srcRange = sheet.getDataRange(); outputSheet.getRange(curRow, 1, srcRange.getHeight(), srcRange.getWidth()) .setValues(srcRange.getValues()); var lastRow = outputSheet.getLastRow()+1; outputSheet.getRange(curRow, 1, lastRow-curRow, 1) .setValue(id); curRow = lastRow;
}
return fileList;
}
試したこと
下記で試してみたところ、エラーはでないものの空白の結果となりました。
var srcRange = sheet.getDataRange();
if(id[curRow][27]===''){
outputSheet.getRange(curRow, 1, srcRange.getHeight(), srcRange.getWidth())
.setValues(srcRange.getValues());
var lastRow = outputSheet.getLastRow()+1; outputSheet.getRange(curRow, 1, lastRow-curRow, 1) .setValue(id); curRow = lastRow; sheet.getRange(curRow+1,27).setValue('済');
}
return fileList;
}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー