getValues和getBackgrouds不在Google Apps脚本中返回数据

时间:2018-07-26 19:35:04

标签: google-apps-script google-sheets getvalue

我正在尝试创建一个代码,以检查单元格是否已选中(或未选中)复选框,然后将数据从该行上的相应单元格复制到另一个“摘要”工作表中。以下未包含“如果选中则复制数据”部分。

我遇到的问题是getValues和getBackgound似乎都没有返回数据。

运行代码时,记录器显示每个复选框的值均为“ false”(即使已选中某些复选框,并且使用电子表格设置中的数据验证也将其值设置为1(选中)和0(未选中)

如果我切换到getBackgrounds,则记录器将显示每个单元格的背景都是白色的“ #ffffff”,即使这些单元格是红色的。

[[我希望我的代码遍历每张工作表,行和列。似乎可以很好地迭代,但不检索数据。]]

我做错了什么?这是我的完整代码:

function MAPSuccess() {
var app = SpreadsheetApp;
var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/1UUdiLsz2OvKdqnr2KB0Tx74gzrGx0m4XUA5oNMUB06k/edit');
var allsheets = ss.getSheets();
  var s = ss.getNumSheets();
  var master = app.getActiveSpreadsheet().getSheetByName("Master");
  var masterLastRow = master.getLastRow();
  

  for (var s = 2; s < allsheets.length; s++) { 
var sheet = app.getActiveSpreadsheet().getActiveSheet();
var r = sheet.getCurrentCell().getRow();    
var lastrow = sheet.getLastRow();
var lastcol = sheet.getLastColumn();
var temail = sheet.getRange(1,2);
var tSJCOE = sheet.getRange(2,2);
var c = sheet.getActiveCell().getColumn();

  for(var r = 4;r<=lastrow;r++){

var name= sheet.getRange(r,1).getValue();
var lname= sheet.getRange(r,2).getValue();
var email= sheet.getRange(r,3).getValue();
var pemail= sheet.getRange(r,4).getValue();
    var info = [
      [name, lname, email, pemail]
      ]
var range = sheet.getRange(r,1,1,lastcol);
var rowValues = range.getValues();
   
var cell = [
  [s,r,c]
  ];
    Logger.log(rowValues);
    Logger.log(name);
//    Logger.log(checkRow);
    Logger.log(cell);

1 个答案:

答案 0 :(得分:1)

您似乎总是在活动工作表上执行操作,而不是访问“ allsheets”中的工作表。

var sheet = app.getActiveSpreadsheet().getActiveSheet();

应该是

var sheet = allsheets[s];

您可能还会在下一行误用“ getCurrentCell”,因为这将返回电子表格中当前选择的单元格,无论您访问的是哪个工作表,始终只有一个单元格。