【发布时间】:2020-09-24 23:14:22
【问题描述】:
研究如何使脚本在 IMPORTXML 完成收集数据之前不继续,我发现此功能是最常用的指示之一:
function testWait(){
var lock = LockService.getScriptLock(); lock.waitLock(300000);
SpreadsheetApp.flush(); lock.releaseLock();
}
原文出处:
https://stackoverflow.com/a/43444080/11462274
我想知道我应该在哪里添加它以及需要添加多少次,是否应该在电子表格中调用 IMPORTXML 函数的每一行脚本下方添加它,或者我是否应该只在脚本的开头或结尾。
如果可能,请给我看一个示例,说明我的脚本在修改后的样子。
我的脚本示例(它要大得多,但为了问题不大,我将只发布一部分):
function myFunction() {
var ss = SpreadsheetApp.getActive();
ss.getRange('Monster!A1').setFormula('=IMPORTXML(Gerais!R1,"//*[@class=\'header-label\']"');
ss.getRange('Monster!A1:A').copyTo(ss.getRange('Page 2!A1:A'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
ss.getRange('Monster!A1').clear({contentsOnly: true, skipFilteredRows: true});
ss.getRange('Monster!B1').setFormula('=IMPORTXML(Gerais!R2,"//*[@class=\'header-label\']"');
ss.getRange('Monster!B1:B').copyTo(ss.getRange('Page 2!B1:B'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
ss.getRange('Monster!B1').clear({contentsOnly: true, skipFilteredRows: true});
ss.getRange('Monster!C1').setFormula('=IMPORTXML(Gerais!R3,"//*[@class=\'header-label\']"');
ss.getRange('Monster!C1:C').copyTo(ss.getRange('Page 2!C1:C'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
ss.getRange('Monster!C1').clear({contentsOnly: true, skipFilteredRows: true});
}
【问题讨论】:
标签: google-apps-script google-sheets google-sheets-formula