別のセルのコンテンツをキーとして使用して、特定のセルにIMPORTRANGE関数を設定するスクリプトを作成しようとしています。 Sheet2
にKEYのリストがありますが、これまでのところ私が持っているものは次のとおりです。
cellA2 = sheet2.getRange(row,1);
cellA2value = cellA2.getValue();
Logger.log(cellA2value)
cellA1.setFormula('=IMPORTRANGE(cellA2value, "Sheet1!b2:b20")');
ログを見ると、範囲をインポートしたいGoogleスプレッドシートのKEYを実際に見ることができますが、スクリプトを実行すると、式は希望どおりにテキストを取得せず、cellA2value
をそのまま残します。私はすでに一重引用符と二重引用符で試しました。
これをどうやって解決しますか?
式で
'=IMPORTRANGE(cellA2value, "Sheet1!b2:b20")'
cellA2value
は単なる文字列であり、特定の意味を持たない文字の束です。文字cの後に文字eが続きます。あなたが欲しかったのは
'=IMPORTRANGE(' + cellA2value + ', "Sheet1!b2:b20")'
これは3つの文字列の連結であり、2番目の文字列はcellA2valueです。
ちなみに、importrange
は、ユーザーがスプレッドシートを初めてインポートするときに([これらのスプレッドシートを接続]ダイアログを介して)承認される必要があります。そのため、可能なソースのそれぞれがこの方法で承認されていることを確認する必要があります。