如何从列表中获取表单数量

时间:2016-03-30 07:49:47

标签: google-apps-script google-sheets

应该做什么脚本。首先,从工作表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");  
    }
   } 
} 

1 个答案:

答案 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");
});