-1

此脚本将 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 电子表格脚本中复制了代码以将两个单元格添加在一起。我想将上述示例应用于列中的所有单元格,即整个 D 列和 E 列。

4

2 回答 2

3

这是一个答案:

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 几乎相同)是件好事,因为您可能会从中学到很多东西。大约 1 年前,我不得不从头开始学习它,主要是通过查看这个特定的 google apps 脚本论坛,然后,当我遇到困难时,参考大量的 javascript 通用帮助,你可以通过做一个在互联网上找到搜索手头的术语。

编辑为了清楚起见,我在电子表格中共享了这个脚本(点击这里)。在该电子表格中,有一个名为“脚本中心菜单>将 D 列添加到 E”的自定义菜单

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

于 2013-08-17T19:26:32.053 回答
0

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

ss.getRange("F:F").setValue('=D:D+E:E');

于 2018-05-30T13:28:38.230 回答