为了账号安全,请及时绑定邮箱和手机立即绑定

还有其他方法可以重置字段吗

还有其他方法可以重置字段吗

繁花不似锦 2023-11-02 21:23:38
我正在尝试创建一个重置电子表格函数来清除电子表格。现在我使用循环来定义每列的值。'Dikte'需要设置为6. 第一列必须为假。clearContent清除一切。有更好的方法吗?  var values = [];  for (i = 0; i < 12; i++) {    values.push([false,'','','','','6','0'])  }  var oldoak_data = SS.getRangeByName('oldoak_data').setValues(values);
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

解释:

解决方案一:

  • for您可以使用map摆脱循环。这将为您带来一些性能提升,因为map它比常规循环更快。

  • 一般来说,由于这种方法会覆盖以前的值,因此最好在设置新值之前清除内容。

解决方案2:

  • 另一个想法是通过名称定义工作表对象。就我而言Sheet1。仅清除所需范围,'A2:E13'并将其他两列的值分别设置为60。不确定这种方法是否更快,但可能更有效。


解决方案:

解决方案一:

function resetFields() {

  const SS = SpreadsheetApp.getActive();

  const rng = SS.getRangeByName('oldoak_data');

  const values = rng.getValues().map(r=>[false,'','','','','6','0'])

  rng.clearContent();

  rng.setValues(values);

}

解决方案2:


function resetFields() {

  const SS = SpreadsheetApp.getActive();

  const SH = SS.getSheetByName('Sheet1');

  const rngClear = SH.getRange('A2:E13');

  rngClear.clearContent();

  SH.getRange('F2:F13').setValue(6);

  SH.getRange('G2:G13').setValue(0);

}

解决方案 2 的示例表:

https://img1.sycdn.imooc.com/6543a3000001b9d906530354.jpg

查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信