Javascript 如何将一列中的未知长度列表迭代到另一张表中';s柱
我得到错误:“不正确的范围宽度,是1,但应该是2(第21行,文件“代码”)”Javascript 如何将一列中的未知长度列表迭代到另一张表中';s柱,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我得到错误:“不正确的范围宽度,是1,但应该是2(第21行,文件“代码”)” 我认为这是由于我的“名称”列表的数组形式,当我需要它在列表样式的列而不是行中时。有什么想法吗?有几种方法可以接近逻辑,但要回答: 设置值commmand以及如何设置的逻辑(按组?一次一个 时间?)把这些新名字放到另一张纸上 始终尝试以尽可能大的批量对电子表格执行读写操作。换句话说,使用Javascript构建数组,并一次性设置 一种方法(不确定这是否最有效): 函数名_Iterate2(){ var ss=Spread
我认为这是由于我的“名称”列表的数组形式,当我需要它在列表样式的列而不是行中时。有什么想法吗?有几种方法可以接近逻辑,但要回答: 设置值commmand以及如何设置的逻辑(按组?一次一个 时间?)把这些新名字放到另一张纸上 始终尝试以尽可能大的批量对电子表格执行读写操作。换句话说,使用Javascript构建数组,并一次性设置 一种方法(不确定这是否最有效):
函数名_Iterate2(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var UpdateSheet=ss.getSheetByName(“更新”);
var nameSheet=ss.getSheetByName(“新名称”);
var names=nameSheet.getRange(2,1,(nameSheet.getLastRow()-1),1.getValues();
var reqLength=UpdateSheet.getLastRow()-1;
而(names.length
注意:这段代码是[google apps script],我明白你说的批处理是什么意思。这很好用。非常感谢。
function Name_Iterate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var UpdateSheet = ss.getSheetByName("Update");
var nameSheet = ss.getSheetByName("New Names");
var names = nameSheet.getRange(2, 1,(nameSheet.getLastRow()-1),1).getValues()
var names_transpose=[0]
for (var i = 0; i<names.length; i++){
names_transpose.push(names[i][0])
}
Logger.log(names_transpose)
Logger.log(names)
//Now get last row in update tab
for (var NameAmount=0; NameAmount<(UpdateSheet.getLastRow()-1)/names.length; NameAmount++){
UpdateSheet.getRange(2+names.length*NameAmount,2,nameSheet.getLastRow()-1,2).setValues([names_transpose])
//Devisor=length of LDAP array
//Lead amount %
}
}
UpdateSheet.getRange(2+names.length*NameAmount,2,nameSheet.getLastRow()-1,2).setValues(names)
function Name_Iterate2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var UpdateSheet = ss.getSheetByName("Update");
var nameSheet = ss.getSheetByName("New Names");
var names = nameSheet.getRange(2, 1,(nameSheet.getLastRow()-1),1).getValues();
var reqLength = UpdateSheet.getLastRow() - 1;
while (names.length < reqLength) names = names.concat(names);
var output = names.slice(0, reqLength);
UpdateSheet.getRange(2, 2, reqLength, 1).setValues(output);
}