前提
GASで業績管理シートを作成しています。
実現したいこと
全体集計シートに年月の列の追加と、元となるtmpのセルの関数の引継ぎ
【全体の流れ】
①設定シートにある「月別シート追加」ボタンを押して月別シートを新規作成(例:2205)
→tmpシートを元に月別シート(シート名は①で指定)を作成
②全体集計シートにも①で入力した年月(=シート名)の行を新規追加
→名前ラベルで設定している「C_年月tmpラベル」の行の情報を元に、その1行上に新規作成
→その際にセルに入っている関数も引き継ぐ
※①の流れは実装できているためここには載せていません。
発生している問題・エラーメッセージ
・1行上に値が入らない
・関数が引き継がれない
該当のソースコード
//名前ラベルで設定 const C_ADD_MONTH_ROW_INIT = "C_年月tmpラベル" // 年月追加 function btnAddMonth_Click(){ const ss = SpreadsheetApp.getActiveSpreadsheet(); const sh = ss.getSheetByName('全体集計'); const insRow = ss.getRangeByName(C_ADD_MONTH_ROW_INIT).getRow()-1; const temp_sh = ss.getSheetByName('month_tmp'); Logger.log(insRow) let strInputMonth = Browser.inputBox("追加する年月を入力してください。", "例:2205", Browser.Buttons.OK_CANCEL); if (strInputMonth === "cancel" || strInputMonth === ""){ Browser.msgBox ("年月名が不明です"); return; } sh.insertRowsBefore(insRow-1, 1); sh.getRange(ConvertToLetter(Number(insRow+1)) +':'+ConvertToLetter(Number(insRow+1))) .copyTo(sh.getRange(ConvertToLetter(insRow) +':'+ConvertToLetter(Number(insRow))) , SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); sh.getRange(insRow+1, 1).setValue(strInputMonth); //シートのコピー const copy_month = temp_sh.copyTo(ss) ; copy_month.setName(strInputMonth); copy_month.activate(); copy_month.getRange('A1').setValue(strInputMonth); Browser.msgBox ("年月ファイルを追加しました。"); };
試したこと
insRowの+や-を変えてみましたがうまくいきませんでした・・
ちなみに上記のコードで行うと、2行上に行が追加されて、値は1行上(追加された行の1行下)でかつA列の値(月別シート作成時に指定した年月の値)のみ反映されています
よろしくお願いいたします。。

回答2件
あなたの回答
tips
プレビュー