[英]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.