首页 > 解决方案 > 删除原始表中的行时保持单元格引用 - Google 表格/Excel

问题描述

我有一个表格,基本上显示了另一个表格的数据。问题是:我在原始表中有一些涉及删除行的脚本过程,当它发生时,我失去了对行位置的引用。

我怎样才能解决这个问题?

已经试过了:='INVENTORY'!A3=' »»»»»»»»» INVENTORY'!$A$3

标签: google-sheetsreferencegoogle-sheets-formula

解决方案


当手动或通过脚本删除整行或整列时,Google 表格会将所有引用它的公式替换为#REF.

您可以使用INDIRECT使引用真正静态:手动或脚本。

配方样本:

=INDIRECT("Form!B7")*INDIRECT("Form!F7")'

脚本示例:

function submitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Form"); //Form Sheet
  var datasheet = ss.getSheetByName("Data"); //Data Sheet
   
  // get range and formula
  var dataRange = datasheet.getRange("G1");
  var formula = dataRange.getFormula();

  // delete row
  formSS.deleteRow(7);

  // redefine formula
  formula = '=INDIRECT("Form!B7")*INDIRECT("Form!F7")';
  
  // set new formula
  dataRange.setFormula(formula);
}

推荐阅读