![](/img/trans.png)
[英]How do I pull All data in one Google Sheet to another Google Sheet Tab using Google App Script?
[英]How to pull data validation from another sheet in Google App Scripts
我正在尝试为不同工作表中范围内的单元格构建数据验证。 我试过下面的代码,但我继续收到这个错误“”。 任何帮助将不胜感激。
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 requireValueInRange(range)
的情况下, range
是范围 object。在您的脚本中, 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
是合适的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.