我有一个自定义函数,可以查找特定 Facebook 页面的当前点赞数。我还有一个自定义函数,通过触发器设置为每天运行一次,它应该复制和粘贴包含 facebook 查询函数的单元格。这将允许我有两列 1)日期和 2)喜欢的数量,每个新的一天都会更新。我必须在一天结束之前复制和粘贴值,这样每天的点赞数就不会自动重新计算为当前的点赞数。
我遇到的问题是在公式的复制和粘贴与值的复制和粘贴之间。看起来公式加载速度不够快,因为我一直在粘贴值“thinking...”。我曾尝试使用 Utilities.Sleep() 函数在复制和粘贴值之前暂停脚本,但它似乎无法解决问题。两个自定义函数都在下面。有什么建议吗?
function FBlikes(url) {
var jsondata = UrlFetchApp.fetch("https://graph.facebook.com/"+url);
var object = Utilities.jsonParse(jsondata.getContentText());
return object.likes; //returns the number of "likes"
}
//pastes FB likes
function updateFbLikes() {
var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Like History");
var rangeToCopy = s.getRange("A2:E2"); //sets second line as the range to be copied
var range = s.setActiveCell("A331");
var notLastRow = true;
while(notLastRow){ //finds last row
if(range.getRow() == s.getLastRow()){
notLastRow = false;
s.insertRowAfter(s.getLastRow());
}
range = range.offset(1, 0);
}
rangeToCopy.copyTo(range); // Paste the data
range = range.offset(0, 0, 1, 5); //grab the whole new pasted row
Utilities.sleep(10000); //slowdown so data will load before pasting values
range.copyValuesToRange(s, range.getColumn(), range.getColumn()+4, range.getRow(), range.getRow()); //paste values
}