我正在尝试创建一个代码,以检查单元格是否已选中(或未选中)复选框,然后将数据从该行上的相应单元格复制到另一个“摘要”工作表中。以下未包含“如果选中则复制数据”部分。
我遇到的问题是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);
答案 0 :(得分:1)
您似乎总是在活动工作表上执行操作,而不是访问“ allsheets”中的工作表。
var sheet = app.getActiveSpreadsheet().getActiveSheet();
应该是
var sheet = allsheets[s];
您可能还会在下一行误用“ getCurrentCell”,因为这将返回电子表格中当前选择的单元格,无论您访问的是哪个工作表,始终只有一个单元格。