首页 > 解决方案 > 如何将活动范围更改为可以通过 setValues 设置的数组

问题描述

我一直在用谷歌脚本编写这个简单的代码来在按钮上执行。

我希望用户能够并排选择两个单元格,然后单击按钮。第一个选定的单元格将更新日期,右侧的单元格将增加一。到目前为止,我已经做到了这一点:

function increment() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();

var activeValues = activeSheet.getActiveRange().getValues();

var newValues = [[Utilities.formatDate(new Date(), "UTC-8", 
"yyyy/MM/dd"),activeValues[1]+1]]; 

activeValues.setValues(newValues);

}

我认为我需要在 getActiveRange 上使用 setValues,但我不确定如何将活动范围更改为可由 setValues 设置的数组。

我认为我没有使用 activevalues[1] 调用正确的元素(第一个元素,第二列)。不知道怎么称呼它。

现在我收到错误:在对象 1 中找不到函数 setValues。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


发生错误是因为 activeValues 是数组/二维数组的数组,但 setValues 是类范围的方法。

假设 activeValues 具有与 newValues 相同的形状,那么您可以对代码进行最小的更改,而不是

activeValues.setValues(newValues);

利用

activeSheet.getActiveRange().setValues(newValues);

推荐阅读