web-dev-qa-db-ja.com

IMPORTRANGE()に代わる信頼できる方法はありますか?

しばらくすると式が壊れてError: Loading data...が表示され、パラメーターを変更するまで機能しません。 Sheet1!a3:AgSheet1!a3:AGに変更すると、数日間動作し、その後同じエラーで再度中断します。

myImportrangeカスタム関数を試しました:

// to be used in the spreadsheet like ImportRange, 
// i.e. like this: =myImportRange( "key" ; "sheet!range" ; GoogleClock() )
// the third parameter - GoogleClock() - triggers an automatic update every minute.
// updated 2011-07-17 (ahab): better regex to strip sheetname of *outer* single quotes
function myImportRange(key ,sheetrange) { 
 var shra = sheetrange.split("!") ;
 if (shra.length==1) shra[1]=shra[0], shra[0]="";  

 var sheetstring = shra[0].replace( /^'(.*)'$/g , "$1") // was: replace( /'/g , "") ; updated 2011-07-17 (ahab)
 var rangestring = shra[1] 

 var source = SpreadsheetApp.openById( key )    
 if ( sheetstring.length==0 ) sheet = source.getSheets()[0] ;
 else sheet = source.getSheetByName( sheetstring ) ;

 return  sheet.getRange( rangestring ).getValues(); 
}

しかし、最終的に同じエラーを受け取りました。

2
Gleb

新しいGoogleスプレッドシートに移行

カスタム関数の引数は確定的でなければなりません

NOW()やRand()など、計算のたびに異なる結果を返す組み込みのスプレッドシート関数は、新しいバージョンのスプレッドシートのカスタム関数の引数として許可されていません。カスタム関数がvolatile組み込み関数に基づいて値を返そうとすると、Loading ...が無期限に表示されます。

1
Rubén