如何在谷歌应用程序脚本中从另一张表中提取数据验证



我正试图从另一个工作表中的一个区域为一个单元格构建数据验证。我已经尝试了下面的代码,并且我继续得到这个错误"&";。如有任何帮助,我们将不胜感激。

function dataValidations(){
var builder = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Basic Info");
var invMgmt = SpreadsheetApp.openById("1eGNsJ2iB_IOzcfJe7DyFV_0WhzdQhvW2Lqdzfta2eV4");
var partners = invMgmt.getSheetByName("Partners and Locations").getRange(2,1,75,1).getValues();
var partnerRule = SpreadsheetApp.newDataValidation().requireValueInRange(partners).build();

var origin = builder.getRange("B4");

origin.setDataValidation(partnerRule);
}

requireValueInRange(range)的情况下,range是范围对象。在脚本中,getValues()检索到的值是二维数组。我认为这可能是你问题的原因。那么,为了消除这个问题,下面的修改如何?

发件人:

var partners = invMgmt.getSheetByName("Partners and Locations").getRange(2,1,75,1).getValues();
var partnerRule = SpreadsheetApp.newDataValidation().requireValueInRange(partners).build();

收件人:

var partners = invMgmt.getSheetByName("Partners and Locations").getRange(2,1,75,1).getValues();
var partnerRule = SpreadsheetApp.newDataValidation().requireValueInList(partners.flat()).build();  // Modified

注:

  • SpreadsheetApp.openById("###").getSheetByName("###").getRange(###)用于requireValueInRange时,不会发生错误,并且检索到的值与其他电子表格中的值相同。但当我在单元格中确认数据验证时,发现使用了SpreadsheetApp.getActiveSpreadsheet()而不是SpreadsheetApp.openById("###")。因此,在这种情况下,使用requireValueInList似乎是合适的

参考文献:

  • requireValueInRange(范围(
  • requireValueInList(值(
  • flat((

相关内容

  • 没有找到相关文章

最新更新