シートの内容を転記したいので、下記のコードを書きました。
GAS
1コード 2```function sample() { 3 //コピー先のスプレッドシート取得 4 var ss = SpreadsheetApp.openById('1Xa6mMu0rY33iAvvKvSnKzaNPSdRGwCfSh9xOL1foh1w'); 5 6 //コピー元のコピーしたいシートを取得 7 var sheet_main = SpreadsheetApp 8 .openById('1x5VtIGhBbcFtJBPuhI7NOlfHXExPJCW89fC5LnE9zQ4').getSheetByName('前半'); 9 10 //シートをコピー 11 copySheet = sheet_main.copyTo(ss); 12 13 //コピーしたシート名を変更 14 copySheet.setName('前半転記'); 15 16 //シートを任意の場所に移動 17 ss.setActiveSheet(copySheet); 18 ss.moveActiveSheet(1); //コピーしたシートを左から1番目に移動 19} 20
ですが、問題があります。
①まずはコピー元は関数が反映されているので、コピー先がREFになります。
なので値だけコピーをしたいです。
②コピー元の値が変更された時、再度コピーするのにはコピー先の「前半転記」を1回削除しなければならないこと。
この2つについてどなたかご教授願います。
function sample() {
//コピー先のスプレッドシート取得
const sheet = SpreadsheetApp.openById('1Xa6mMu0rY33iAvvKvSnKzaNPSdRGwCfSh9xOL1foh1w');
const trashSheet = sheet.getSheetByName("前半転記"); //削除するシートの名前を引数に記入
sheet.deleteSheet(trashSheet); //スプレッドシートを削除
//コピー先のスプレッドシート取得
var ss = SpreadsheetApp.openById('1Xa6mMu0rY33iAvvKvSnKzaNPSdRGwCfSh9xOL1foh1w');
//コピー元のコピーしたいシートを取得
var sheet_main = SpreadsheetApp
.openById('1x5VtIGhBbcFtJBPuhI7NOlfHXExPJCW89fC5LnE9zQ4').getSheetByName('前半');
//シートをコピー
copySheet = sheet_main.copyTo(ss);
//コピーしたシート名を変更
copySheet.setName('前半転記');
//シートを任意の場所に移動
ss.setActiveSheet(copySheet);
ss.moveActiveSheet(1); //コピーしたシートを左から1番目に移動
}
と書く事でシートを削除する事が出来ました。
値だけコピーする方法をご教授願います
上のコードをそのままお使いになりたいのであれば、
とりあえずは、上のコードに続けて以下のコードを追加すると値だけを転記(上書き)できると思います。
var values = sheet_main.getDataRange().getValues();
if (values.length > 0) {
copySheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}
