質問: SpreadsheetApp.getActiveSpreadsheet(); SHT.getRange('A1').setFormula('=importrange,(',+.setvalue(rangeToCopy)+,"マスタ!B:U")'); } ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: 回答に至っていないのですがコードが書けないのでこちらに ``` function SetActiveSheet() { var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var objSheet = objSpreadsheet.getSheetByName("リストID"); SpreadsheetApp.setActiveSheet(objSheet); var range = objSheet.getRange("B1");//セルB1を取得 var value = (range.getValue()); SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(value); var sheet = SpreadsheetApp.getActiveSheet(); sheet.clear(); // シートCにシートBで選択したデータを挿入する var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var objSheet = objSpreadsheet.getSheetByName("リストID"); var rangeToCopy = objSheet.getRange("A1"); var sht = SpreadsheetApp.getActiveSpreadsheet(); var SHT = sht.getSheetByName(value); var SHT = SpreadsheetApp.getActiveSpreadsheet(); SHT.getRange('A1').setFormula('=importrange("'+rangeToCopy.getValue()+'","マスタ!B:U")'); } ``` こうすればおそらくエラーなく実行できるように思います(リストIDシートが存在し、そのA1にスプレッドシートID、B1に既存のシート名に重複しない何らかの文字が入っていれば) また、IMPORTRANGEが正常に動作するには「マスタ」シートの存在が必要です。 他の方への参考の観点からもいくつかポイントを記載しておきます。 * 英数字・記号は厳密にお願いします 構文エラーおよびtypeエラーいずれでも"や'(の対応関係)およびValueがvalueになっているなどが影響しています(もちろんそれだけではないですが)。プログラムを書く上では瑣末な点にも注意してほしいです。 この点は、当初のコードにあった「+.setvalue」というのも何らかの参考資料から引用した際に.の前が消えるなどしているはずです。融通が効かないのですが、そういうものと割り切ってためしてください。 * importrange importrangeの書式そのものがおかしかったようです。こちらはシートで「=IMPORT」と入れるとヒントが出るはずですので、書式をあわせてください(ここでも,の位置や"の有無が影響します) * 問題の特定 いまだに質問の「エラーが出てしまいわからなくなってしまいました」の何が分からないか分かりません。またやりたいことも私は明確に理解できていないように思います。 一つには、エラーが出たときは、一行ずつコメントアウトして、どこまでできるかを探ってみてください。 今回はほぼ最終行にだけエラーがありました(つまりほとんどの部分がはじめからできていた、ということです)。