Google apps script 消除引用不存在的问题

Google apps script 消除引用不存在的问题,google-apps-script,error-handling,referenceerror,Google Apps Script,Error Handling,Referenceerror,在UpdateDemogInfoDA脚本中,我允许用户输入新信息,在另一个工作表JBD中捕获这些信息,然后在Sample Data选项卡中用新信息覆盖旧信息 然后,当按下“新建查找”按钮时,将填充基于CustID查找的公式。出于某种原因,并且仅针对特定单元格(如方向和键码),数据将转换为: 裁判!引用不存在错误 我不明白为什么。我包含了NameSearchDA和UpdateDemogInfoDA的代码,希望我遗漏了一些对您来说显而易见的东西。我愿意接受任何关于清理它的建议,这样它运行得更快 我已

在UpdateDemogInfoDA脚本中,我允许用户输入新信息,在另一个工作表JBD中捕获这些信息,然后在Sample Data选项卡中用新信息覆盖旧信息

然后,当按下“新建查找”按钮时,将填充基于CustID查找的公式。出于某种原因,并且仅针对特定单元格(如方向和键码),数据将转换为:

裁判!引用不存在错误

我不明白为什么。我包含了NameSearchDA和UpdateDemogInfoDA的代码,希望我遗漏了一些对您来说显而易见的东西。我愿意接受任何关于清理它的建议,这样它运行得更快

我已经确保样本数据中的所有单元格不会通过运行.breakspareat进行合并。我已确保JBD单元引用正在从客户中心提取正确单元的数据

我的电子表格是

这三个选项卡是DA客户中心、JBD临时保存位置,用于将数据复制和采样到主数据库

我通常使用Jay R Leveque作为样本客户。如果单击“按名称搜索”按钮,则可以选择用户,然后从下拉列表中选择地址。这将填充该客户ID,然后所有公式都从该唯一ID驱动

    function UpdateDemogInfoDA() {
    
    var ss=SpreadsheetApp.getActive();
    var sh1=ss.getSheetByName('Sample Data');
    var rg1=sh1.getDataRange();
    var vA=rg1.getValues();
    var sh2=ss.getSheetByName('JBD');
    var id=sh2.getRange('DU2').getValue();
    var JBDdata=sh2.getRange(2,2,1,137);
      
       
      
    for(var i=0;i<vA.length;i++) {
    if(vA[i][0]==id) {
    JBDdata.copyTo(sh1.getRange(i+1,2,1,137),{contentsOnly:true});
    ss.toast("Match found. Demographics Updated");
    
        break;
         }
     }

}

只想确保您了解这些行不会返回值。它们返回一个范围

var name = sheet.getRange("C9");
var allnames = filters.getRange("A2");
var address=sheet.getRange("C11");
如果希望它们返回一个值,请按如下方式编写:

var name = sheet.getRange("C9").getValue();
var allnames = filters.getRange("A2").getValue();
var address=sheet.getRange("C11").getValue();
签出这些引用:


对于连续的单元格区域,Get Values是一种更可取的方法,因为它们返回一个可以快速访问的二维数组。而且通常在循环脚本中提供10倍的性能改进。

因此我处理了许多格式问题,并认为未找到的引用与复制数据时的格式有关。我对工作表中的所有单元格应用了相同的格式,似乎解决了这个问题。感谢Cooper的支持。

我对编码有点陌生。但是我的想法是设置范围,以便在脚本的后面,我可以在下一次搜索时设置或重置变量的公式。哇。这是一个大项目。就个人而言,我将使用对话框或WebApp来执行所有的数据输入,以及我可能会考虑使用数据库的数据量。我怀疑你会在这个问题上得到更多的帮助,因为这是一个非常广泛的问题。我非常具体的问题是为什么裁判!“方向”框中出现“未找到引用”错误。
var name = sheet.getRange("C9").getValue();
var allnames = filters.getRange("A2").getValue();
var address=sheet.getRange("C11").getValue();