0

大家好,提前感谢,

我有一个脚本,我想在每月定时触发器上设置它以复制 Google 电子表格中特定工作表上的 B 列。下面是脚本,但它仅适用于当时打开的工作表。我需要添加什么才能让它仅在工作表的第一张表上工作?

function UpdateSummary() {
var sheet =SpreadsheetApp.getActiveSheet(); //define spreadsheet name
var column = sheet.getRange("O1").getValue();
var row = 2;
Utilities.sleep(100000);  // Slowdown the script (10 second)
var UpdateSummary = sheet.getRange("B2:B205"); // Select and copy the column
UpdateSummary.copyValuesToRange(sheet, column+3, column+3, row, row+205); // Paste the data
sheet.getRange(1, column+3).setValue(new Date()); // add date in column title
sheet.getRange("O1").setValue(column+1);  // Incremente variable
}

谢谢,

约翰

4

2 回答 2

0
var sheet =SpreadsheetApp.getActiveSheet(); //define spreadsheet name

这种错误意味着被调用的函数不是你想要的函数。要么整个​​函数不正确,要么查看 getActiveSheet() 函数并对其进行编辑以包含您当前不在的工作表。

于 2013-10-21T20:28:14.723 回答
0
function myFunction() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet 1');   
  var values = sheet.getDataRange().getValues()  
  var maxRows = sheet.getLastRow()
  var datatoCopy = []   
  for( var row = values.length -1; row >= 0; --row ){
    if (values[row][5] == 'here'){
     var whereToCopy = row
     Logger.log(whereToCopy);
     break
     }
     }
   for(row=whereToCopy-1;row<maxRows-1;++row){
    var rowData=[]
    rowData.push(values[row+1][2]+'*C*');// I added these 'indicators' to show what happens... delete them when the result is ok ;-)
    rowData.push(values[row+1][3]+'*D*');//
    rowData.push(values[row+1][4]+'*E*');//
    datatoCopy.push(rowData);// store column data in an array - remove the ** that I used to see what was copied ;-)
    }
    Logger.log(datatoCopy)
sheet.getRange(whereToCopy, 3, datatoCopy.length, datatoCopy[0].length).setValues(datatoCopy);// overwrite data to column E
}`enter code here`
于 2013-10-21T20:38:36.990 回答