首页 > 解决方案 > 更新另一张表 Google App Script 中的原始数据后更新数据

问题描述

我从另一张纸上获取数据。第一张称为“sheet1”,第二张称为“sheet2”。这是我的代码:

function getdata(sheetName) {

   if (sheetName == ""){
     return "";
   } else {
     var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
     var val = ss.getRange("A1").getValue(); // "A1" is the value what I need to get from "sheet1"
     return val;

“A3”是名称表名称值是“sheet1”。

我添加=getdata(A3)了“sheet2”以从“sheet1”中获取价值,一切正常。

但是在单元格“A1”中更改“sheet1”中的数据后出现问题,“sheet2”中的数据没有改变,为什么?

如果更改原点“sheet1”中的数据需要在“sheet2”中自动更改,我想要我。

针对该问题的任何编辑

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


一种解决方案是在可用单元格中的工作表中添加一个复选框,并将该单元格包含在函数的第二个参数中。假设复选框在 A1 中,您的功能变为

=getdata(A3,A1)

即使该参数不存在您的自定义函数。然后把一个编辑功能如下

function onEdit(event){
  var sh = event.source.getActiveSheet();
  if (sh.getName()!='main'){
    var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('main');
    ss.getRange("A1").setValue(!ss.getRange("A1").getValue());
  }
}

假设“main”是公式所在的工作表的名称。main!A1 中值的变化将重新激活公式。https://docs.google.com/spreadsheets/d/1FJFGDJQsl9NrJa7IQwQRjwyYvG4QqQhGoytQkET1MT8/copy


推荐阅读