私は最近これをする必要がありました。これは私が思いついたもので、スプレッドシートのキーと範囲を ahab のmyImportRange
関数にハードコーディングするだけです
// to be used in the spreadsheet like so: = myScriptedImportRange( GoogleClock() )
// no need to include key or range because they are in the script here
//
// the third parameter - GoogleClock() - triggers an automatic update every minute.
// updated 2011-07-17 (ahab): better regex to strip sheetname of *outer* single quotes
// updated 2013-01-27 (ben) to hard-code key and range
function myScriptedImportRange( ) {
var key = "PUT YOUR DATA_SPREADSHEET_ID IN HERE"
var sheetrange = "PUT YOUR SHEET AND CELL RANGE IN HERE"
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();
}
私の場合、一連のプライベート シート、レギュラーmyImportRange
および VMERGE と SQL を使用してプライベート シートからの選択を中間シートに結合する中間シート、および 1 つのセルを含むパブリック シートがあります。= myScriptedImportRange( GoogleClock() )
ここにも同様のアプローチがあることに注意してください: https://stackoverflow.com/a/11857014
ImportRange
元のワークブックが開いていない場合、関数および関連する関数には、インポートされたデータが表示されないという問題がよくあることにも注意してください。これを回避する簡単な方法は、 https ://stackoverflow.com/a/11786797 のコメントで説明されています。