【发布时间】:2015-01-04 18:40:41
【问题描述】:
我是新手,想不通。这是场景
1)我有一张表,其中有 3 列,其中一列有类别值。
2)我正在编写一个脚本,我从表中选择范围并在该特定列中查找该值。
3)如果该行具有我正在寻找的值,我想复制表格的整行并将其粘贴到新的电子表格上。
函数 myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var range =sheet.getRange('B1:B35');
var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
var verduras ='verduras';
var rule = SpreadsheetApp.newDataValidation().requireTextEqualTo('Category').copy();
range.setDataValidation(规则); range.copyValuesToRange(destination, 1, 2, 1, 2);
}
解决方案:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("TableWithInformation");
var columnToSearch = 2; // B column
var lastrow = sheet.getLastRow();
Logger.log(sheet.getLastRow());
var range =sheet.getRange(1,columnToSearch,sheet.getLastRow(),columnToSearch);
var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Report");
var values = range.getValues();
//Destination
var numberOfColumns = 3;
var numberOfRows = 1 ;
var startColumn = 1;
var startRow = 2;
// equivalent to destination.getRange('A1:C3');
var count = 0
var destRow = destination.getLastRow()+1
for(var i=0;i<values.length;i++){
Logger.log("i is now: " +i);
Logger.log("Current row value: " +values[i][0])
if(values[i][0] == 'Category'){
Logger.log("*** Value found in cloumn: " +values[i][0] +"**** \n Count: " +i);
count++;
var rangeToCopy = sheet.getRange((i+1), 1,numberOfRows,numberOfColumns);
var destinationRange = destination.getRange(destRow, startColumn,numberOfRows,numberOfColumns);
destRow++;
Logger.log("Next Destination row: " + destRow);
rangeToCopy.copyTo(destinationRange);
}
}
}
【问题讨论】:
标签: google-apps-script google-sheets