Google脚本用于复制列的值并在电子表格中插入新列

时间:2013-02-13 12:56:03

标签: javascript google-apps-script google-sheets

我已经开始创建一个电子表格来监控来自facebook,youtube等的一些结果......我做了很多事情,我可以从这个网站上的以前的答案中学习。

现在我很难找到一个可以帮助我做以下事情的脚本:

A列包含指标的说明
B列包含从外部来源中提取指标的公式(例如我的facbeook页面的数量,我的YT频道的视频数量)

我希望有一个每周一运行的脚本并执行以下操作:

  1. 在B列和C列之间插入一个新列(将B之后的所有列移动1个位置)
  2. 复制列B并仅粘贴新空列C
  3. 中的值(而不是公式)
  4. 在C列(C1)之上写下像周开始YYYY / MM / DD的内容,其中YYYY / MM / DD是上周星期一的日期
  5. 我尝试过这个的修改版本(来自http://www.kraukoblog.com/marketing/tutorial-watch-your-competitors-facebook-pages-with-google-docs/):

    function UpdateFblikes() {
      var sheet =SpreadsheetApp.getActiveSheet(); //define spreadsheet name
      var column = sheet.getRange("O1").getValue();
      var row = 4;
       Utilities.sleep(4000);  // Slowdown the script (4 second)
       var nblike = sheet.getRange("E4:E60"); // Select and copy the column
       nblike.copyValuesToRange(sheet, column+5, column+5, row, row+56); // Paste the data
      sheet.getRange(3, column+5).setValue(new Date()); // add date in column title
       sheet.getRange("O1").setValue(column+1);  // Incremente variable
    }
    

    但它只在日期中写入日期。

    这使我能够比较这些指标的每周变化。

    这有可能吗?

1 个答案:

答案 0 :(得分:1)

我已经能够通过浏览google开发者页面上的不同教程找到解决方案。这是我创建的功能

function insertcolumn() {
// The code below will insert 1 column after column 5 in sheet 4
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[4];
sheet.insertColumns(5, 1); 


// Get the range of cells that store data to be copied having created a named range for the column in the spreadsheet.
  var valuestocopy = ss.getRangeByName("valuestocopy")


// The code below copies the range valuestocopy cells to column five up to 100 rows

valuestocopy.copyValuesToRange(sheet, 5, 5, 1, 100); }