Googleシートにスクリプトを書いて、指定されたシートの名前を返しました(下記参照)。Googleシート新しいシートの作成時にシート名を返すスクリプトは自動的に更新されません
この機能は要約シートに書き込まれます。ここで入力は、必要なシートのインデックスとして与えられます。私はすべての機能があらかじめ書かれています。
A1 = GetSheet(1)B1 = GetSheet(2)C1 = GetSheet(3)...など明らか
問題のインデックスを持つシートがまだ存在していないとき、私はエラーを取得します。しかし、そのシートを作成すると、セルが新しいシートの名前で自動的に更新されず、エラーが返されます。名前を表示するには、関数を削除してから再度貼り付けなければなりません。
新しいシートが追加されたときに、関数を再入力せずにセルを自動的に更新する方法はありますか?
謝罪私が何か明白でないものを紛失している場合、私はこれに非常に新しいです!
function GetSheet(input)
{
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = SpreadsheetApp.getActiveSheet();
var sourceIndex = sourceSheet.getIndex();
var nextIndex = sourceIndex + 1;
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(ss.getSheets()[input]);
var active = ss.getActiveSheet();
var name = active.getName();
return name
}
あなたの関数の最初の4行は、あなたの戻り値を生成するために何もしないようですue。また、スプレッドシートの 'change'イベント(https://developers.google.com/apps-script/guides/triggers/events#change)を参照して、変更を取得し、更新するスクリプトをトリガーしてください。さらに、すべてのシートの名前を最初に取得してから、 'range.setValues()'を使用して要約シートに貼り付けてください(https://developers.google.com/apps-script/reference/spreadsheet/range# setvaluesvalues) –
@DeanRansevycz最初の4行に気づいてくれてありがとう、私は取り除かなければならない。古いバージョンから。私は 'change'を見ていきます。最初にシート名を見つけることの問題は、それらが作成されるまで、それらが何であるかわからないことです! –