首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google电子表格脚本编辑器:如何用默认值0替换空单元格

Google电子表格脚本编辑器:如何用默认值0替换空单元格
EN

Stack Overflow用户
提问于 2016-12-21 02:57:37
回答 3查看 2.5K关注 0票数 0

我在尝试用默认值0替换空单元格时遇到了一些问题。下面是我使用的代码,它适用于一个单元格,但它不会填充列的其余部分。我知道我遗漏了一个for循环--我已经用for循环和一段时间测试过了,然而,这两个循环对我都不起作用。有人能帮帮我吗?

代码语言:javascript
运行
复制
function onEdit(event) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var rng = sheet.getRange(3,4,sheet.getLastRow());
  var data = rng.getValues();

  if(data === "") {
      rng.setValue(0);
  }
}
EN

回答 3

Stack Overflow用户

发布于 2021-03-31 18:41:31

代码语言:javascript
运行
复制
function emptycellfilling() {
  var ss= SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');

  for(var i=2; i<ss.getLastRow(); i++){
    var val= ss.getRange(i,2).getValue();//select col num

    if(val==''){ss.getRange(i,2).setValue(0);}//select target col num and value you want to fill inside, here is 0
  }
  
}

如果你正在寻找其他东西,请留下评论

票数 2
EN

Stack Overflow用户

发布于 2016-12-21 04:36:53

我稍微修改了一下你的代码:

代码语言:javascript
运行
复制
function siftBlanks() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var colToZero = 2;

  var data = sheet.getRange(1,colToZero,sheet.getMaxRows()).getValues();

  var blank = data.map(testBlank); // this returns an array of true or false
  for (var i=0;i<data.length;i++){
    if(blank[i]){
      data[i] = ["0"];
    }
  }
  sheet.getRange(1,colToZero,sheet.getMaxRows()).setValues(data);
}

function testBlank(arg){
  return arg=="";
}

它加载整个列(由colToZero确定),返回一个由true或false组成的数组,具体取决于相应的单元格是否为空,然后执行一个for循环遍历这些元素,将所有空白元素置零。然后,它将所选列的值设置为新的、已修改的列。

我确信有更好的方法来做到这一点,而不是求助于迭代数组,但这是我第一次尝试。我希望它能有所帮助,或者至少能激励其他人改进它。

票数 1
EN

Stack Overflow用户

发布于 2016-12-21 04:35:34

尝试下面的脚本..

代码语言:javascript
运行
复制
function fillWithZero() {
var ss = SpreadsheetApp.getActive()
    .getSheetByName('Sheet1');
var range = ss.getRange("A:B")
    .offset(0, 0, ss.getDataRange()
        .getNumRows());
range.setValues(range.getValues()
    .map(function (row) {
        return row.map(function (cell) {
            return !cell ? 0 : cell;
        });
    }));
}

更改工作表名称和范围以适合您,看看这是否适合您?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41249379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档