Google 电子表格脚本 - 分析 table 的值 (1) 和 post 几行中具有此值的另一行
Google Spreadsheet Script - Analyze table for value (1) and post several rows with this value in another
我想分析一个 sheet (name: 1) 的一个值 (例如 1) 和 post 这些行中的一些值,这个值在另一个 sheet (name :2)。
"搜索 F 列中获得值(例如 1)的所有单元格。复制 A、E 和 G 列(如果 F 为 1)并 post 它位于 [=29= 的末尾] 2.
我的脚本实际上只有 post 个结果。请你帮助我好吗?我想我只是没有得到任何循环?
function checkWS() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("1"));
var sheet = spreadsheet.getActiveSheet();
// figure out what the last row is
var lastRow = sheet.getLastRow();
// the rows are indexed starting at 1, and the first row
// is the headers, so start with row 2
var startRow = 2;
// grab column 5 (the 'month left' column)
var range = sheet.getRange(2, 6, lastRow - startRow + 1, 1);
var numRows = range.getNumRows();
var soll_values = range.getValues();
// Now, grab the reminder name column
range = sheet.getRange(2, 1, lastRow - startRow + 1, 1);
var branch_values = range.getValues();
// and the count column
range = sheet.getRange(2, 7, lastRow - startRow + 1, 1);
var count_values = range.getValues();
var warning_count = 0;
var msg = "";
// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var soll = soll_values[i][0];
if (soll == 1) {
// if it's exactly 1, do something with the data.
var name = branch_values[i][0];
var count = count_values[i][0];
warning_count++;
}
}
if (warning_count) {
var ss = SpreadsheetApp.openById("1vn4xTwdNk7E1Av4VNugtW6KWgZns2LzKS1lN1F6CTPw");
var Tab = ss.getSheetByName('2');
var lastRow = Tab.getLastRow();
Tab.getRange(lastRow + 1, 1).setValue(name);
Tab.getRange(lastRow + 1, 5).setValue(count);
Tab.getRange(lastRow + 1, 10).setValue(new Date());
SpreadsheetApp.flush();
}
}
现在完成了。我刚刚使用了一些帮助列:
function checkWS() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("NAME"));
var sheet = spreadsheet.getActiveSheet();
// figure out what the last row is
var lastRow = sheet.getLastRow();
// the rows are indexed starting at 1, and the first row
// is the headers, so start with row 2
var startRow = 6;
// grab date (the 'month left' column)
var range = sheet.getRange(6, 54, lastRow - startRow + 1, 1);
var numRows = range.getNumRows();
var soll_values = range.getValues();
// Now, grab the branch column
range = sheet.getRange(6, 11, lastRow - startRow + 1, 1);
var branch_values = range.getValues();
// and the count column
range = sheet.getRange(6, 49, lastRow - startRow + 1, 1);
var count_values = range.getValues();
var warning_count = 0;
var msg = "";
// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var soll = soll_values[i][0];
if (soll == 1) {
// if it's exactly 1, do something with the data.
var name = branch_values[i][0];
var count = count_values[i][0];
warning_count++;
// if (warning_count) { -> not needed
var ss = SpreadsheetApp.openById("ID");
var Tab = ss.getSheetByName('NAME_other_ss');
var lastRow = Tab.getLastRow();
Tab.getRange(lastRow + 1, 10).setValue(name);
Tab.getRange(lastRow + 1, 14).setValue(count);
Tab.getRange(lastRow + 1, 20).setValue(new Date());
SpreadsheetApp.flush();
// }
}
}
}
我想分析一个 sheet (name: 1) 的一个值 (例如 1) 和 post 这些行中的一些值,这个值在另一个 sheet (name :2)。
"搜索 F 列中获得值(例如 1)的所有单元格。复制 A、E 和 G 列(如果 F 为 1)并 post 它位于 [=29= 的末尾] 2.
我的脚本实际上只有 post 个结果。请你帮助我好吗?我想我只是没有得到任何循环?
function checkWS() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("1"));
var sheet = spreadsheet.getActiveSheet();
// figure out what the last row is
var lastRow = sheet.getLastRow();
// the rows are indexed starting at 1, and the first row
// is the headers, so start with row 2
var startRow = 2;
// grab column 5 (the 'month left' column)
var range = sheet.getRange(2, 6, lastRow - startRow + 1, 1);
var numRows = range.getNumRows();
var soll_values = range.getValues();
// Now, grab the reminder name column
range = sheet.getRange(2, 1, lastRow - startRow + 1, 1);
var branch_values = range.getValues();
// and the count column
range = sheet.getRange(2, 7, lastRow - startRow + 1, 1);
var count_values = range.getValues();
var warning_count = 0;
var msg = "";
// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var soll = soll_values[i][0];
if (soll == 1) {
// if it's exactly 1, do something with the data.
var name = branch_values[i][0];
var count = count_values[i][0];
warning_count++;
}
}
if (warning_count) {
var ss = SpreadsheetApp.openById("1vn4xTwdNk7E1Av4VNugtW6KWgZns2LzKS1lN1F6CTPw");
var Tab = ss.getSheetByName('2');
var lastRow = Tab.getLastRow();
Tab.getRange(lastRow + 1, 1).setValue(name);
Tab.getRange(lastRow + 1, 5).setValue(count);
Tab.getRange(lastRow + 1, 10).setValue(new Date());
SpreadsheetApp.flush();
}
}
现在完成了。我刚刚使用了一些帮助列:
function checkWS() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheetByName("NAME"));
var sheet = spreadsheet.getActiveSheet();
// figure out what the last row is
var lastRow = sheet.getLastRow();
// the rows are indexed starting at 1, and the first row
// is the headers, so start with row 2
var startRow = 6;
// grab date (the 'month left' column)
var range = sheet.getRange(6, 54, lastRow - startRow + 1, 1);
var numRows = range.getNumRows();
var soll_values = range.getValues();
// Now, grab the branch column
range = sheet.getRange(6, 11, lastRow - startRow + 1, 1);
var branch_values = range.getValues();
// and the count column
range = sheet.getRange(6, 49, lastRow - startRow + 1, 1);
var count_values = range.getValues();
var warning_count = 0;
var msg = "";
// Loop over the days left values
for (var i = 0; i <= numRows - 1; i++) {
var soll = soll_values[i][0];
if (soll == 1) {
// if it's exactly 1, do something with the data.
var name = branch_values[i][0];
var count = count_values[i][0];
warning_count++;
// if (warning_count) { -> not needed
var ss = SpreadsheetApp.openById("ID");
var Tab = ss.getSheetByName('NAME_other_ss');
var lastRow = Tab.getLastRow();
Tab.getRange(lastRow + 1, 10).setValue(name);
Tab.getRange(lastRow + 1, 14).setValue(count);
Tab.getRange(lastRow + 1, 20).setValue(new Date());
SpreadsheetApp.flush();
// }
}
}
}