编写脚本以删除 Google 表格中的公式

Stu*_*art 5 google-sheets google-apps-script

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

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

小智 8

您可以通过运行以下脚本将公式的输出替换为静态值。关键点是某个范围被复制到自身,但仅作为 value 复制

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});
}
Run Code Online (Sandbox Code Playgroud)

也就是说,将公式保留在适当的位置会更合乎逻辑,因此它会继续生成您希望记录的输出,并将其输出复制到其他地方,例如复制到电子表格的新行。例子:

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
}
Run Code Online (Sandbox Code Playgroud)