解決したい課題
一覧シートの3人の名前をそれぞれ別シートに複製させたいです。
シート名…narururu
B4セル…1
シート名…naruko
B4セル…2
シート名…nana
B4セル…3
現状
1枚のシートを複製することは下記のコードでできました。
複数シートの複製はできないです。
コード
function getInfo() { var ssForm = SpreadsheetApp.openById('取得元のスプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow()-1; var number = sheetForm.getRange(2,1,row,1).getValue(); var name = sheetForm.getRange(2,2,row,1).getValue(); var ssResignation = SpreadsheetApp.openById('反映させたいスプレッドシートID'); var sheetResignation = ssResignation.duplicateActiveSheet().setName(name); sheetResignation.activate(); sheetResignation.getRange('B4').setValue(number); }
取得元のスプレッドシート
試したコード
function getInfo() { var ssForm = SpreadsheetApp.openById('取得元のスプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow()-1; var number = sheetForm.getRange(2,1,row,1).getValue(); var name = sheetForm.getRange(2,2,row,1).getValue(); for(var i=0; i<number.length; i++){ var ssResignation = SpreadsheetApp.openById('反映させたいスプレッドシートID'); var sheetResignation = ssResignation.duplicateActiveSheet().setName(name); sheetResignation.activate(); sheetResignation.getRange('B4').setValue(number); } }
結果
上記の通り、特にエラー無く実行されるのですが、シートは複製されず実行前と変化ないです。
上記の事象について、何かわかる方いらっしゃいましたらご教示いただきたいです。
以上、よろしくお願いいたします。
追記
下記のコードを実行してみると、narururuだけが繰り返し値を取得している状況であることが分かりました。
function test() { var ssForm = SpreadsheetApp.openById('スプレッドシートID'); var sheetForm = ssForm.getSheetByName('一覧'); var row = sheetForm.getLastRow() - 1; for (i = 0; i < row; i++) { var number = sheetForm.getRange(2, 1, row, 1).getValue(); var name = sheetForm.getRange(2, 2, row, 1).getValue(); console.log(number,name); } }
本来であれば、下記の表示になる認識です。
1 'narururu'
2 'naruko'
3 'nana'
なぜ、最初の行のみが繰り返し実行されているのか原因が分からない状況です。
上記から何か分かる方いらっしゃいましたらアドバイスいただけますと助かります。
回答1件
あなたの回答
tips
プレビュー