gpt4 book ai didi

google-apps-script - 如何在使用脚本计算公式之前避免从公式单元格复制值?

转载 作者:行者123 更新时间:2023-12-04 17:20:35 25 4
gpt4 key购买 nike

我有一个自定义功能,可以查找特定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
}

最佳答案

如果我理解正确,并且您要尝试做的是将第2行的结果作为静态值放在页面的末尾。

如果是这样,您可以尝试:


从工作表底部删除所有未使用的行
使用以下代码


函数updateFbLikes(){
var s = SpreadsheetApp.getActiveSpreadsheet()。getSheetByName(“ Like History”);
var valuesToCopy = s.getRange(“ A2:E2”)。getValues();
s.appendRow(valuesToCopy [0]);
}


如果还有更多内容,请告诉我。

关于google-apps-script - 如何在使用脚本计算公式之前避免从公式单元格复制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13716676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com