【问题标题】:Google Sheets: leaving a cell value unchanged If importhtml returns a #N/A error谷歌表格:保持单元格值不变如果 importhtml 返回 #N/A 错误
【发布时间】:2019-09-17 17:17:21
【问题描述】:

我正在尝试编写一个自定义函数,以防止在 importhtml 返回 #n/a 错误时更改单元格的值。

这个公式总结思路:=IF(ISNA(IMPORTHTML("http://www.example.com","table",1)), "do not change cell value", IMPORTHTML("http://www.example.com","table",1))

我考虑过在执行 importhtml 函数之前保存单元格值,所以如果 importhtml 返回 #n/a 错误,我可以将保存的值放回去。

我已经测试了很多不同的代码,但结果总是出错。

如果有人可以帮助我,我将非常感激。

【问题讨论】:

  • 您能提供您当前的脚本吗?
  • 现在我当前的脚本是@ziganotschka 建议的。

标签: google-apps-script google-sheets


【解决方案1】:
  • 创建辅助工作表
  • 使用importhtml 公式仅将主工作表中的值复制粘贴一次到辅助工作表
  • 编写一个脚本,将所有值从主工作表复制到辅助工作表not NaN
  • installable onChange 触发器绑定到脚本,该触发器将在每次更新IMPORTHTML 时运行脚本

示例脚本:

function onChange() {
  var ss=SpreadsheetApp.getActive();
  var importSheet=ss.getSheetByName("Sheet1");
  var finalSheet=ss.getSheetByName("Sheet2");
  var importRange=importSheet.getDataRange();
  var data=importRange.getValues();
  for(var i=0; i<data.length;i++){
    for(var j=0; j<data[0].length;j++){
      if(!isNaN(data[i][j])){
        finalSheet.getRange(i+1, j+1).setValue(data[i][j]);
    }
  }
 }      
}

【讨论】:

  • 谢谢!!!它工作得很好! (由于google restrictions,googlefinance 公式除外。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 2021-08-04
  • 2023-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多