당신은에 저장된 문자열 값을 사용하여 일정에 액세스하기 위해 특별한 작업을 수행 할 필요가 없습니다 시트. Simon의 대답에 언급 된 접근 방식과 접근 방식이 모두 효과가 있습니다.
뭔가 잘못되어 있어야합니다. 시트에 나열된 모든 캘린더에 액세스 할 권한이 있습니까? 액세스권이없는 경우, getCalendarById는 null를 돌려줍니다.
try/catch 블록에서 getCalendarById 호출 후 코드를 감싸서 "나쁜"달력 하나가 스크립트를 크래시하지 않도록하십시오.
EG가 :
var calRng = calids.getRange(a, 2);
var calRngVal = calRng.getDisplayValue();
var cal = CalendarApp.getCalendarById(calRngVal);
try{
var ad = cal.getName();
//other code here
}catch(e){
Logger.log('Exception processing '+calRngVal+', row '+a+'. Message: '+e);
}
이
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch
는 또한 루핑 및 범위를 가져 오는 것은 하나 하나가이 작업을 수행하는 속도가 느린 방법입니다 있습니다, 당신은 모든 데이터를 반환 할 getDataRange()를 사용할 수 있습니다 시트를 2 차원 배열로 배열 한 다음 배열을 반복하면됩니다. 그러나 최적화하기 전에 "null"문제를 해결할 것입니다.
정확합니다. 스크립트를 실행하고 있던 계정과 캘린더 중 일부를 공유해야했습니다. 너와 사이먼 모두에게 감사한다. – Neill
좋은 일이 해결되었습니다 :) –