2017-01-03 28 views
0

我有一张数据表,通过一个vlookup整天读取另一个工作表的信息。另一张表通过一天中刷新的importxml链接到网站。编写一个脚本来删除Google工作表中的公式

一旦已经获得的信息,我需要删除公式并留在原地的值。即一旦单元格不再读取为#N/A,则用值替换该行数据。然后,我的想法是将其设置为触发器,然后每小时运行一次,循环遍历每行并更新不再显示#N/A的所有行。

回答

1

您可以通过运行下面的脚本替换静态值的公式输出。关键是一定范围是copied to itself, but only as values

function freezeValues() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet1'); // or whatever name 
    var range = sheet.getRange("A1:Z1"); // assuming your data appears in A1-Z1 
    range.copyTo(range, {contentsOnly: true}); 
} 

这就是说,它会更合理,以保持公式的地方,所以它继续生产要记录输出,而是在其他地方复制它的输出,例如到的一个新行电子表格。例如:

function logValues() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Sheet1'); // or whatever name 
    var range = sheet.getRange("A1:Z1"); // assuming your data appears in A1-Z1 
    var values = range.getValues();   // get the data 
    sheet.appendRow(values[0]); // appends a row with these values to the bottom of sheet 
} 
+0

ZAQ。这是一个很好的开始,所以谢谢你,但我需要更进一步。我每天大概有100行。这些线路的“结果”将在一天中更新,因此在9点线路3,5,17,25可能更新,然后在9点30分线路7,35,40,92的结果可能会增加,然后更多并通过importxml在整个一天更多。基本上,每次importxml刷新整张表格,然后重新计算哪一个表达时间相当长,并且在importxml'空白'出来然后刷新的过程中,所有结果都会“重置”。 – Stuart

+0

因此......'拼图'的最后一部分是一个简单的问题表单,它显示为#N/A,直到结果出来。我希望循环每小时运行一次并执行代码如上所述,但对于已经有结果并因此不再显示为#N/A的所有行,按行逐行排列。希望这是明确的。再次感谢您的帮助,如果您可以添加任何进一步它将非常感激。亲切的问候。 – Stuart

相关问题