应该做什么脚本。首先,从工作表List_1上的范围获取工作表名称。然后,使用这个名称数组,只在这些表上放置一些数据。 https://docs.google.com/spreadsheets/d/1Xdws6Vr6YVXuj19mvpOvkpJokOfY2T7Sh1aMpous_Xw/edit#gid=0
taskinfo.append(new Taskinfo("1535","Kobe ddd","09:20:20 3.1.2016","yt"));
classContext->setContextProperty("taskmodel",QVariant::fromValue(taskinfo));
问题。脚本启动时 - 没有任何反应。如何只获取表单和vlookup的数量?也许,存在一些像“getSheetId”这样可以得到张数的函数。
解决了,感谢布鲁斯。
function VList() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheetNames = ss.getSheetByName("List_1");
var rangeNames = sheetNames.getRange("B3:B5").getValues();
for (var sheetId = 0; sheetId<sheets.length; sheetId++){
if(sheets[sheetId].getSheetName() == rangeNames) {
ss.getRange("C1").setValue("done");
}
}
}
答案 0 :(得分:2)
getValues()返回一个二维数组,然后将其与字符串值进行比较 - 这样就永远不会成立。
一旦你解决了这个问题,你仍然会更新相同的单元格,C1已完成&#39;多次 - ss指向List_1表 - 我假设您的意思是更新名称在列表中的表。
为什么不使用b3:b5中的列表来简单地按名称获取每个工作表并更新它?因为你已经知道他们的名字,所以不需要查看工作表列表。
类似
ss.getSheetByName("List_1").getRange("b3:b5").getValues()
.forEach(function(row) {
var sheet = ss.getSheetByName (row[0]);
if (!sheet) throw 'missing sheet ' + row[0];
sheet.getRange("c1").setValue ("done");
});