2015-10-15 66 views
2

我想写一个谷歌表的脚本:谷歌表脚本移动跨列

  1. 如果LF1 =“预测”,
  2. 清除细胞LF11的内容,
  3. 然后在等待计算更新
  4. 然后拷贝从LF8
  5. 内容然后粘贴内容从LF8成LF11
  6. 脚本然后重复一遍又一遍通过一个其中第1行=“预测”,并停止跨一个栏移动时,第1行<>“预测”

我是一个完整的初学者和有只设法远远得到这个:

function UpdateDrawDownToAvailable() { 
     var ss = SpreadsheetApp.getActiveSpreadsheet(); 

     var sheet = ss.getSheets()[0]; 

     var range = sheet.getRange("LF11:LI11"); 
     range.clearContent(); 

     var sheet = SpreadsheetApp.getActiveSheet(); 
     sheet.getRange("LF8:LI8").copyTo(sheet.getRange("LF11:LI11"), {contentsOnly:true}); 
    } 

任何帮助将不胜感激!

回答

1

代码可能看起来像这样。我没有测试过它。请注意0​​声明。要查看Logger.log()报表中的打印输出,请使用“查看”菜单,然后选择“日志”菜单项。

function UpdateDrawDownToAvailable() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 

    var rangeForRow11 = sheet.getRange("LF11:LI11"); 
    var row11_Values = rangeForRow11.getValues(); //A 2 Dimensional array of values. 
    row11_Values = row11_Values.join().split(","); //One dimension array of values 
    Logger.log('row11_Values: ' + row11_Values); 

    var rangeForRow8 = sheet.getRange("LF8:LI8"); 
    var row8_Values = rangeForRow8.getValues(); //A 2 Dimensional array of values. 
    row8_Values = row8_Values.join().split(","); //One dimension array of values 
    Logger.log('row8_Values: ' + row8_Values); 

    var i=0, 
     thisLoopCellValue = "", 
     row8Value=""; 

    for (i=0;i<row11_Values.length;i+=1) { //Loop the number of times that the array is long 
    thisLoopCellValue = row11_Values[i]; 
    Logger.log('thisLoopCellValue: ' + thisLoopCellValue); 

    if (thisLoopCellValue === "Forecast") { 
     sheet.getRange(11, 325+(i+1)).clear(); //Clear the cell 
     SpreadsheetApp.flush(); //Apply all pending changes 
     //Get row 8 value 
     row8Value = row8_Values[i]; 
     Logger.log('row8Value: ' + row8Value); 
     sheet.getRange(11, 325+(i+1)).setValue(row8Value);//Put row 8 value into row 11 
    } else { //If this cell value does not equal to "Forecast" 
     return; //Quit 
    }; 

    }; 
};