我正在嘗試制作一個快速腳本來將資訊從一系列電子表格復制到一個電子表格中。我收到一個錯誤
“例外:無效引數:選項。應該是型別:地圖”。
我對地圖知之甚少,這個錯誤對我來說毫無意義。
function make_new_contact_lists() {
DriveApp.getFileById("1IZBpDno4MOBeiGJeIKd2ykHpCr2359jhcV_SJpSuQ94");
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSpreadsheet(ss);
var sheet = ss.getSheetByName("Sheet2")
ss.setActiveSheet(sheet);
var lr = sheet.getLastRow();
var range = sheet.getRange("A2:B" lr).getValues();
var list = [];
list.push([range]);
for (i = 0; i < list.length; i ) {
var entry = list[i];
var name = entry[0];
var fileID = entry[1];
var newsheet =
SpreadsheetApp.openById("1IZBpDno4MOBeiGJeIKd2ykHpCr2359jhcV_SJpSuQ94");
SpreadsheetApp.setActiveSpreadsheet(newsheet);
/**-->This is where the error gets flagged**/
newsheet.insertSheet(name);
var newsheet2 = newsheet.setActiveSheet(name);
var file = SpreadsheetApp.getFileById(fileID);
var spreadsheet = file.setActiveSpreadsheet();
var current = spreadsheet.getSheetByName("Current Contacts");
spreadsheet.setActiveSheet(current);
var range2 = current.getRange("A1:G3").getValues();
current.setValues
}
}
感謝您提供任何幫助
uj5u.com熱心網友回復:
問題:
var range = sheet.getRange("A2:B" lr).getValues();//[[a2,b2],..]
var list = [];
list.push([range]); //[[[[a2,b2],[a3,b3],..]]]
for (i=0; i < list.length; i ){
var entry = list[i];//[[[a2,b2],[a3,b3],..]]
var name = entry[0];//[[a2,b2],[a3,b3],..]
list是一個 4D 陣列并且name是一個 2D 陣列。newsheet.insertSheet(name) 期望name是一個stringor object,而腳本提供的是一個二維陣列。
解決方案:
直接訪問range作為一個二維陣列,這使得name一個string
片段:
const range = sheet.getRange("A2:B" lr).getValues();//[[a2,b2],..]
for (const i=0; i < range.length; i ){
var entry = range[i];//[a2,b2]
var name = entry[0];//"a2"
uj5u.com熱心網友回復:
你的一些代碼根本沒有意義。你可能會更好地重新開始:
function make_new_contact_lists() {
DriveApp.getFileById("1IZBpDno4MOBeiGJeIKd2ykHpCr2359jhcV_SJpSuQ94");
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet2")
const lr = sh.getLastRow();
const vs = sh.getRange("A2:B" lr).getValues();
const ss1 = SpreadsheetApp.openById("1IZBpDno4MOBeiGJeIKd2ykHpCr2359jhcV_SJpSuQ94");
for (i = 0; i < vs.length; i ) {
let entry = vs[i];
let name = entry[0];
let fileID = entry[1];
let nsh = ss1.insertSheet(name);
let ss2 = SpreadsheetApp.openById(fileID);
let csh = ss2.getSheetByName("Current Contacts");
let vs2 = csh.getRange("A1:G3").getValues();
//the rest of the code makes no sense
csh.setValues
}
}
并且不要只是編造方法去閱讀有關它們的檔案,注意引數和回傳值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/341850.html
