首页 > 解决方案 > 获取#错误!和#NAME?当我在 Google Apps 脚本中使用 .setFormula () 时,在单元格表中

问题描述

我正在尝试根据下一列同一行中单元格的值和固定单元格中的值,在一列的单元格中包含一个函数。

我在 GAS 中创建了我的代码,您可以在这里看到:

function enviar_datos_formulario_anadir_mascota_a_bd_fichas() {

  var libro = SpreadsheetApp.getActiveSpreadsheet();
  var hojaOrigen = libro.getSheetByName("Añadir ficha");
  var hojaDestino = libro.getSheetByName("BD Fichas");

  var row = hojaDestino.getLastRow() + 1;

  var fechaHoy = hojaDestino.getRange("H6").setFormula("=TODAY()");
  var fechaNacimiento = hojaDestino.getRange(row, 9); 
  var edad = hojaDestino.getRange(row, 8);

 edad.setFormula('=IF(ISBLANK(\'fechaNacimiento\')=FALSE;DATEDIF(\'fechaNacimiento\';\'fechaHoy\';"Y");"")');

}

我也尝试过:

edad.setFormula('=IF(ISBLANK('+fechaNacimiento+')=FALSE;DATEDIF('+fechaNacimiento+';'+fechaHoy+';"Y");"")');

还有:

edad.setFormula('=IF(ISBLANK(\"fechaNacimiento\")=FALSE;DATEDIF(\"fechaNacimiento\";\"fechaHoy\";"Y");"")');

无论出于何种原因,我都无法让它工作。它向我抛出了#ERROR!或#NAME?注意。我在下面附上截图:

错误集公式

名称错误集公式

有人能告诉我问题到底是什么吗?

先感谢您

标签: google-apps-scriptgoogle-sheets-formula

解决方案


您可以使用以下Apps Script功能解决您的问题,只需将 替换为Sheet name您的版本即可,您现有代码的主要问题之一是没有获取,如果您想参考,A1notation您不需要在公式中执行escapeotherrange和 variablehojaOrigen 根本没有使用:

function UntitledMacro3() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheetD = spreadsheet.getSheetByName('Dockets');
  var sheetU = spreadsheet.getSheetByName('USERNAMES');

  var row = sheetU.getLastRow() + 1;

  var fechaHoyrange = sheetU.getRange("H6");
  fechaHoyrange.setFormula("=TODAY()");
  var fechaHoy = fechaHoyrange.getA1Notation();
  var fechaNacimiento = sheetU.getRange(row, 9).getA1Notation(); 

  var edad = sheetU.getRange(row, 8);
  edad.setFormula('=IF(ISBLANK('+fechaNacimiento+')=FALSE,DATEDIF('+fechaNacimiento+','+fechaHoy+',"Y"),"")');
 
};

在此处输入图像描述


推荐阅读