希望拥有以下Google电子表格功能,其中(1)重命名电子表格(目标文件),并且(2)根据另一个电子表格(源文件)中包含的值填充其中一张表格,从第二个开始循环向前排,直到列出的所有电子表格都已重命名并填充。
重命名目标文件所需的所有值都在单元格范围D2中:D。
填充目标文件所需的所有值都在单元格范围A2:D
中目标文件的所有ID都在单元格范围G2:G。
中第二行和最后一个包含数据的行之间和之间没有空行,并且将使用包含此范围内数据的所有行。每个列(A,B,C,D,G)具有相同数量的包含数据的行。
包含要使用的条目的行数的值在单元格区域E1中,如果有任何用途(在此函数中未使用)。
function rnmCpyRngTo() {
//rename target spreadsheet and populate range
//in target sheet from values in source spreadsheet
//get source sheet in source spreadsheet
var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists");
//get source cell range containing value of name to be given to target spreadsheet
var scrvn = ssss.getRange("D2").getValue();
//get source cell range containing values to copy to target sheet cell range
var scrvr = ssss.getRange("A2:D2").getValues();
//get source cell range containing values of target spreadsheet ID
var scrvid = ssss.getRange("G2").getValue();
//get target spreadsheet ID
var tssid = DriveApp.getFileById(scrvid);
//get target sheet
var tss = SpreadsheetApp.openById(scrvid).getSheetByName("Wordlist");
//rename target spreadsheet
tssid.setName(scrvn);
//copy values to target sheet cell range
tss.getRange(1, 1, scrvr.length, scrvr[0].length).setValues(scrvr);
}
问题15616530似乎接近预期的结果但无法修改以适应。非常感谢帮助。
添加了:
//get source cell range containing values of target spreadsheet ID
var scrvid = ssss.getRange("G2").getValues();
源表已经共享here,因此任何有链接的人都可以编辑。
假设您已登录Google,则此folder已被共享。
根据需要重复。这就是我要做的。
感谢。
答案 0 :(得分:1)
这应该可以解决问题,只需将代码置于for循环中:
function rnmCpyRngTo() {
//rename target spreadsheet and populate range
//in target sheet from values in source spreadsheet
//get source sheet in source spreadsheet
var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists");
//get source cell range containing value of name to be given to target spreadsheet
var data = ssss.getDataRange().getValues() // All the data in sheet, since there not empty rows.
Logger.log(data)
var dataLength = data[0][4] // Get number of rows from cell E1, can use data.length instead
for (var i = 1; i <= dataLength ; i++){ // If you rather use data.length change the condition to i < data.length
var scrvn = data[i][3] // Get Rename value
var scrvr = []
scrvr[0] = data[i].slice(0, 4) // Get Copy Values
var scrvid = data[i][6] // Get of SpdSheet
var tss = SpreadsheetApp.openById(scrvid) // Get Spreadsheet
tss.rename(scrvn) // Rename Spreadsheet
Logger.log(scrvr)
tss.getSheetByName("Wordlist").getRange(1, 1, scrvr.length,scrvr[0].length).setValues(scrvr) // Set Copy Values to the sheet
}
}
希望它有所帮助!