如何将脚本应用于谷歌电子表格中的整个列

时间:2013-08-16 04:43:09

标签: google-apps-script

此脚本将E1更改为36,然后清除D1。即它添加两个细胞然后清除另一个细胞。                D1 E1                10 26

 var ss = SpreadsheetApp.getActiveSheet(); 
 var num1 = ss.getRange("D1").getValue(); 
 var num2 = ss.getRange("E1").getValue();
 ss.getRange("E1").setValue(num1+num2); 
 ss.getRange("D1").clear();

因为我复制了Google spreadsheet script to add two cells together的代码。  我想在上面的例子中列出所有列中的单元格,即整个列D和列E.

2 个答案:

答案 0 :(得分:1)

这是一个答案:

function addColumns(){
  var ss = SpreadsheetApp.getActiveSheet();
  var len = ss.getLastRow();
  for(var i = 1 ; i < len +1  ; i++){
    var num1 = ss.getRange("D"+i).getValue(); 
    var num2 = ss.getRange("E"+i).getValue();
    ss.getRange("E"+i).setValue(num1+num2); 
    ss.getRange("D"+i).clear(); 
  }
}

效率不高......所以你会觉得它很奇怪。但它确实有效。
我同意@eddyparkinson认为学习谷歌应用程序脚本(这与javascript几乎相同)是很好的,因为你可能会从中获得很多。我不得不从大约一年前开始学习它,主要是通过查看谷歌应用程序脚本的这个特定论坛,然后,当我遇到困难时,引用大量的javascript一般帮助,你可以在互联网上找到,只需做一个搜索手中的术语。

EDIT 为了表明这一点,我在电子表格(click here)中共享了此脚本。 在该电子表格中,有一个名为“脚本中心菜单&gt;将列D添加到E

的自定义菜单

然后,这会将D Sheet1列中的所有值添加到E表1列中的值,在E列中显示它们并删除D列中的原始值。(如果您想进行实验,可以准备列的值手动,只需在D和E列中输入所需的值 - 首先清除D和E列中的当前值可能更容易。另一种设置演示值的方法是使用第二个菜单项Script Center菜单&gt;复制列,只将Sheet2中的现有值复制到Sheet1)。

答案 1 :(得分:0)

如果您使用第三列来获取它们的总和并且之后没有清除任何列(因为公式将其值注册为0并更改),则此方法有效:

ss.getRange( “F:F”)的setValue( '= d:d + E:E');