基于另一列的值的命名范围列的setValues()

发布于 2025-02-14 01:21:32 字数 763 浏览 2 评论 0原文

我正在从两个单独的单列范围抓住两个值的值。

以下代码获取以下错误:例外:参数(number [])不匹配电子表格Appapp.range.setValues的方法签名。

我知道SetValues()需要2维数阵列。如何更改其他RangeVals中的值并将其更改为2维数组?

function setValuesInARange() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var range = ss.getRangeByName("columnOne");
  var otherRange = ss.getRangeByName("columnTwo");
  var startingRow = ss.getRangeByName("headerRow").getRow();
  var vals = range.getValues();
  var otherRangeVals = otherRange.getValues();
  for (var i = startingRow + 1; i < vals.length; i++) {
    var currentVal = vals[i];
    Logger.log(currentVal);
    if (currentVal != "") {
      otherRangeVals[i] = "new value";
    }
  }
  otherRange.setValues(otherRangeVals);
}

I am grabbing two arrays of values from 2 separate single-column named ranges.

The following code gets the error of: Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues.

I understand that setValues() requires a 2 dimensional array. How can I change values in otherRangeVals and change it to a 2 dimensional array?

function setValuesInARange() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var range = ss.getRangeByName("columnOne");
  var otherRange = ss.getRangeByName("columnTwo");
  var startingRow = ss.getRangeByName("headerRow").getRow();
  var vals = range.getValues();
  var otherRangeVals = otherRange.getValues();
  for (var i = startingRow + 1; i < vals.length; i++) {
    var currentVal = vals[i];
    Logger.log(currentVal);
    if (currentVal != "") {
      otherRangeVals[i] = "new value";
    }
  }
  otherRange.setValues(otherRangeVals);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日裸衫吸 2025-02-21 01:21:32

这样尝试:

function setValuesInARange() {
  var ss = SpreadsheetApp.getActive();
  var c1rg = ss.getRangeByName("columnOne");
  var c2rg = ss.getRangeByName("columnTwo");
  var hr = ss.getRangeByName("headerRow").getRow();
  var c1vs = c1rg.getValues();
  var c2vs = c2rg.getValues();
  for (var i = hr + 1; i < c1vs.length; i++) {
    if (c1vs[i][0] != "") {
      c2vs[i][0] = "new value";
    }
  }
  c2rg.setValues(c2vs);
}

Try it this way:

function setValuesInARange() {
  var ss = SpreadsheetApp.getActive();
  var c1rg = ss.getRangeByName("columnOne");
  var c2rg = ss.getRangeByName("columnTwo");
  var hr = ss.getRangeByName("headerRow").getRow();
  var c1vs = c1rg.getValues();
  var c2vs = c2rg.getValues();
  for (var i = hr + 1; i < c1vs.length; i++) {
    if (c1vs[i][0] != "") {
      c2vs[i][0] = "new value";
    }
  }
  c2rg.setValues(c2vs);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文