JS,GAS等の知識はほぼないに等しいのですが、よろしくお願いします。
GASでIMPORTXMLで抽出したデータをいくつかのセルに記述し、一日置きに、そのデータを
任意のセルにコピーペーストしたいと思っております。
改善したいのは2点で
1.特定のセルでうまくコピーペーストしてくれない
2.エディタ内で記述が整数での表現だとわかりにくく、文字型と変数を組み合わせてわかりやすくしたい
希望は以下のような形式です。
hetml
1sh.getRange("A1"のようなわかりやすい表現).copyTo(sh.getRange(copyRow,(こちらも変数とともに"B列"のようにわかりやすい表現を使いたい))
以下、現在の状況でして (始まりの行数が中途半端なところから始まっているのは、これまで手動で行っていたためです。)
html
1function myFunction() { 2 3//アクティブなスプレッドシートを取得 4var ss = SpreadsheetApp.getActiveSpreadsheet(); 5 6//アクティブなスプレッドシートのアクティブシートを取得 7var sh = ss.getActiveSheet(); 8 9var lastRow = sh.getLastRow(); 10var copyRow = lastRow + 1; 11 12//日本 13 14//NOW関数(F列) 15sh.getRange(46,6).copyTo(sh.getRange(copyRow,6),{contentsOnly:true}); 16 17//総感染者数(C3にはIMPORTXML抽出した感染者数が入っています。コピー先:G列) 18sh.getRange(4,3).copyTo(sh.getRange(copyRow,7),{contentsOnly:true}); 19 20//感染者米国比較&一日あたり(H列,I列に関数あり。コピー先:H列) 21sh.getRange(46,8,46,9).copyTo(sh.getRange(copyRow,8)); 22 23//PCR検査数合計(C3にはIMPORTXML抽出したPCR検査数が入っています。コピー先:J列) 24sh.getRange(4,4).copyTo(sh.getRange(copyRow,10),{contentsOnly:true}); 25 26//PCR検査者米国比較&一日あたり(K列,L列に関数あり。コピー先:K列) 27sh.getRange(46,11,46,12).copyTo(sh.getRange(copyRow,11)); 28 29//米国 30sh.getRange(46,15).copyTo(sh.getRange(copyRow,15),{contentsOnly:true}); 31sh.getRange(3,3).copyTo(sh.getRange(copyRow,16),{contentsOnly:true}); 32sh.getRange(46,17,46,18).copyTo(sh.getRange(copyRow,17)); 33sh.getRange(3,4).copyTo(sh.getRange(copyRow,18),{contentsOnly:true}); 34 35}
上記で実行すると47行目、F〜J列までは問題なくコピペされますが、K列以降はなぜか47行目と48行目までコピペされてしまいます。
整数表現を文字型に変えるために調べると
getRange(copyRow.tostring() + '任意のアルファベット')
のような形式で記述するような旨が記載してあったのですが、いまいちよくわかりませんでした。
また、前述のコピペがある列から2重でペーストされる理由もよくわかりませんでした。
アドバイスなどいただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/08 23:12
退会済みユーザー
2020/07/25 08:14