如何获取显示#ERROR的单元格的后端值!使用 Google Apps 脚本?

Posted

技术标签:

【中文标题】如何获取显示#ERROR的单元格的后端值!使用 Google Apps 脚本?【英文标题】:How to get back end value of a cell showing #ERROR! using Google Apps Script? 【发布时间】:2019-12-06 15:09:22 【问题描述】:

我使用 Zapier 将 Google 通讯录与 Google 电子表格同步。我面临的问题是国家代码如 +92348 555555 的联系人在电子表格单元格中输入时显示#ERROR!由于数量上的空间,当我手动删除空间时,它运行良好并且不显示#ERROR!。

我曾尝试使用 Google Apps 脚本获取单元格的值并从联系号码中删除空格,但我遇到了获取显示 #ERROR! 的单元格后端值的问题。它给了我#ERROR!当我使用 Google Apps 脚本的 getValues() 或 getDisplayValues() 函数时。

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CS2");
  var lr = ss.getLastRow();
  var data = ss.getRange("E2:E" + lr).getValues();
  for(var i = 0; i < data.length; i++)
  
     Logger.log(data[i].toString());  
  

当我双击带有#ERROR! 的单元格时,它显示 =6018 2888184,我想使用应用程序脚本代码获取此值。我得到的是#ERROR!。

【问题讨论】:

How to get and fix raw value of a cell that has #ERROR的可能重复 【参考方案1】:

您可以使用getFormulas() 来消除错误。

尝试替换它

  var data = ss.getRange("E2:E" + lr).getValues();
  for(var i = 0; i < data.length; i++)
  
     Logger.log(data[i].toString());  
  

有了这个

  var data = ss.getRange("E2:E" + lr).getFormulas();
  for(var i = 0; i < data.length; i++)
  
     data[i][0] = data[i][0].replace(" ","");
  
  ss.getRange("E2:E" + lr).setFormulas(data);

【讨论】:

以上是关于如何获取显示#ERROR的单元格的后端值!使用 Google Apps 脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QTableWidget 中获取单元格的索引?

是否存在按 Ctrl + G 并选择空白不会突出显示空单元格的情况?

单元格显示“公式短语错误”有没有办法获取单元格的内容?

如何在一个字符串中获取 UITableView 的选定单元格的值

使用漂亮表时如何获取单元格的值

如何获取 datagridview 单元格的 Style.BackColor