前提・実現したいこと
・スプレッドシート(参照先)からスプレッドシート(マスターデータ)にGASのコードを用いたコピー&ペーストしたい。また、参照先のデータは適宜更新があるため、その際には適宜コピーペーストをしたい。
・参照先のA列データには個人情報を入れるため、コピーペースト後はセルの情報を削除したい。
・マスターデータには個人情報を保存しておきたいため、A列上でマスターデータに記入のある列には上書きでコピーペーストはしたくない。
発生している問題・エラーメッセージ
コピーペーストを行うことには成功したが、「A列上でマスターデータに記入のある列には上書きでコピーペースト」してしまうため、 参照先で空欄になっているセルも含めてそのまま更新されてしまう。 スプシのイメージ ![スプシのイメージ](b15c6181e96c3d2d9cd8fb2082a9e542.png)
該当のソースコード
GoogleAppsScript
1 function getList() { 2 var ss_copyFrom = SpreadsheetApp.openById('スプレッドシートのアクセスコードキー'); //コピー元のマスターデータのあるスプレッドシート 3 var ss_copyTo = SpreadsheetApp.getActiveSpreadsheet(); 4 5 6 const ss = SpreadsheetApp.openById('スプレッドシートのアクセスコードキー'); 7 var sheet_find = ss.getSheetByName('タブ名'); 8 9 for(let i = 2; i < 5 ;i++ ) { 10 var find_name = sheet_find.getRange(i+1000,2).getValues(); 11 12 if(find_name !== '') { 13 console.log(i) ; 14 15 16 } 17 18 19 20 var sheet_copyFrom = ss_copyFrom.getSheetByName('タブ名'); //コピー元のスプレッドシートの値を抜き出したいシート名 21 var sheet_copyTo = ss_copyTo.getSheetByName('タブ名'); //ペーストする自分のスプレッドシートのシート名 22 23 var lastRow = ss_copyFrom.getLastRow(); //最終行を取得 24 var lastColumn = ss_copyFrom.getLastColumn(); //最終列を取得 25 26 console.log(i) ; 27 28 var copyValue = sheet_copyFrom.getRange(i,1,lastRow,lastColumn).getValues(); //コピー元のシートから値の入っている全範囲をコピー 29 console.log(i) 30 sheet_copyTo.getRange(i,1,lastRow,lastColumn).setValues(copyValue); //自分のシートにコピーした値を全範囲をペースト 31 } 32 }
試したこと
for文以下でセルの空欄を見つけ、空欄のないところからコピー&ペーストするようにプログラムを組もうとしたが、上記の通り狙っていた結果が得られなかった。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。