2016-08-25 77 views
1

我通过行迭代,并获得一定的细胞像这样的值:使用脚本将数据从另一个添加到电子表格。

for (var i = 2; i < lastRow; i++) { 
    if (sheet.getRange(i, getColIndexByName("Department Concerned")).getValue() == "HR") { 
     // Do some stuff 
    } 
    } 

我的数据复制到另一个工作表,像这样:

// select the Spreadsheets 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var target = SpreadsheetApp.openById("Spreadsheet ID"); 

    // select the Sheets from the Spreadsheets 
    var source_sheet = ss.getSheetByName("Logs"); 
    var target_sheet = target.getSheetByName("Sheet3"); 

    // select the range from the Sheets 
    var source_range = source_sheet.getRange("A2:J500"); 
    var target_range = target_sheet.getRange("A2:J500"); 

    // get the values from the source sheet 
    var values = source_range.getValues(); 

    // set the values to the destination sheet 
    target_range.setValues(values); 

我需要的是复制数据和将其添加到其他电子表格的相同范围,具体取决于我在“for循环”中所使用的单元格值。 谢谢。

+0

我们能在这里帮助你什么?你展示的两个代码看起来工作,只包括一个在另一个。还有什么你没有写在这里的吗? – Harold

回答

2

你认为是对的,但需要找到更好的方法。

  • 从源片
  • 检查各行,列Department Concerned选择值"HR"
  • 上述条件满足选择的行
  • 在靶片粘贴它

我组合这些方案因此,

function myFunction() 
{ 
// select the Spreadsheets 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var target = SpreadsheetApp.openById("Spreadsheet ID"); 

// select the Sheets from the Spreadsheets 
var source_sheet = ss.getSheetByName("Logs"); 
var target_sheet = target.getSheetByName("Sheet3"); 

// select the range from the Sheets 
var source_range = source_sheet.getRange("A2:J500"); 

// get the values from the source sheet 
var values = source_range.getValues(); 

// an array for selected rows 
var selectedRows = []; 

for(var row in values) 
{ 
    // thinking 5th column is Department Concerned 
    if(values[row][4] =='HR') 
    { 
    //add add entire row to selected 2d array 
    selectedRows.push(values[row]); 
    } 
} 
// set the values to the destination sheet 
target_sheet.getRange(2, 1, selectedRows.length,10).setValues(selectedRows); 
} 
相关问题