【问题标题】:Writing a script to remove formulae in Google sheets编写脚本以删除 Google 表格中的公式
【发布时间】:2017-01-03 21:21:20
【问题描述】:

我有一张数据表,全天通过 vlookup 从另一张表中读取信息。另一张表通过全天刷新的 importxml 链接到网站。

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

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案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
    }
    

    【讨论】:

    • 扎克。这是一个很好的开始,所以谢谢你,但我需要更进一步。我每天大约有 100 行。这些行的“结果”将全天更新,因此在 9:00 行 3、5、17、25 可能会更新,然后在 9:30 可能会添加第 7、35、40、92 行的结果,然后更多以及通过 importxml 全天进行的更多操作。基本上,每次 importxml 刷新整个工作表时,都会重新计算需要相当长的时间,并且在 importxml '空白'然后刷新时,在此期间所有结果都'重置'。
    • 因此...“拼图”的最后一部分是相关工作表上的简单 vlookup,在结果出现之前显示为 #N/A。我希望循环运行每隔一小时,基本上如上所述执行代码,但对所有已经有结果的行逐行执行,因此不再显示为#N/A。希望这很清楚。再次感谢您的帮助,如果您可以进一步添加任何内容,我们将不胜感激。亲切的问候。
    • 你们都没有展示过如何从单元格中删除公式?????? clear() 没有 clearContent() 没有
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2018-07-10
    相关资源
    最近更新 更多