Google에서 계산을 마치 자마자 명령을 실행할 수있는 스크립트를 작성하려고합니다 (예 : 일부 VBA를 모방 한 Google 문서에 스크립트를 추가하려고합니다. "계산" 기능성).Google 문서 도구 맞춤 새로 고침 스크립트
스크립트는 범위를 문자열로 변환하고 해당 문자열에서 "Loading ..."(또는 "#VALUE!"또는 "# N/A") 하위 문자열을 찾는 것으로 생각합니다. "while"루프는 원하지 않는 부분 문자열이 문자열에서 더 이상 발견되지 않을 때까지 잠자기 상태에 있습니다.
"...로드"나는 샌드 박스로 다음과 같은 스프레드 시트를 사용하고, 그리고 코드는 단지 검색 샌드 박스에서 괜찮 작동하는 것 같다 : 다른 상황에서
https://docs.google.com/spreadsheet/ccc?key=0AkK50_KKCI_pdHJvQXdnTmpiOWM4Rk5PV2k5OUNudVE#gid=0
그러나, 값이 "# VALUE"로 반환되는 셀이 있습니다. 또는 "# N/A"(Google이 아직로드/사고/계산 중임) 이외의 이유로 이 주변의 방법은 무엇입니까?
function onEdit() {
Refresh();
};
function Refresh() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
// set the range wherever you want to make sure loading is done
var range = sheet.getRange('A:A')
var values = range.getValues();
var string = values.toString();
var loading = "Loading";
do
{
var randomWait = Math.floor(Math.random()*100+50);
Utilities.sleep(randomWait);
}
while (string.search(loading) ==! null);
range.copyTo(sheet2.getRange('A1'), {contentsOnly:true});
customMsgBox();
};
function customMsgBox() {
Browser.msgBox("Data refreshed.");
};
가 확인하려면 - 당신은 몇 가지를 실행 찾고 있습니다 모든 계산이 끝나면 코드? 그게 당신이 찾고있는 사건입니까? –
@ArunNagarajan : 예. 그게 내가 원하는거야. – zenhuman
@Henrique : 시간을내어 주셔서 감사합니다. 당신의 조언을 염두에 두겠습니다. – zenhuman