【问题标题】:Google Apps Script Replacing TextGoogle Apps 脚本替换文本
【发布时间】:2019-10-17 17:26:38
【问题描述】:

我有一个谷歌表格,在 A 列中,我需要将按钮按下时的文本替换为 NONE。该列在需要保持不变的几个不同行中有标题。我写了以下脚本:

function part() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
  sheet.getRange('A12').setValues([['NONE']])
  sheet.getRange('A15:A16').setValues([['NONE']])
  sheet.getRange('A19:A22').setValues([['NONE']])
  sheet.getRange('A25:A30').setValues([['NONE']])
  sheet.getRange('A33:A36').setValues([['NONE']])
  sheet.getRange('A39:A42').setValues([['NONE']])
  sheet.getRange('A45:A52').setValues([['NONE']])
  sheet.getRange('A55:A59').setValues([['NONE']])
  sheet.getRange('A62:A66').setValues([['NONE']])
}

当我尝试运行脚本时出现以下错误: 数据中的行数与范围内的行数不匹配。数据有 1 但范围有 2。

我知道这与列数多于其他行的行有关,但不确定如何修复代码。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    用数据填充单列范围

    function part() {
      var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
      var rangeA=["A12","A15:A16","A19:A22","A25:A30","A33:A36","A39:A42","A45:A52","A55:A59","A62:A66"];
      rangeA.forEach(function(A1){
        var rg=sheet.getRange(A1);
        var vA=rg.getValues();
        vA.forEach(function(r){
          r[0]="NONE";
        })
        rg.setValues(vA); 
      })
    }
    

    这适用于任何尺寸范围:

    function part() {
      var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
      var rangeA=["A12","A15:A16","A19:A22","A25:A30","A33:A36","A39:A42","A45:A52","A55:B59","A62:A66"];
      rangeA.forEach(function(A1){
        var rg=sheet.getRange(A1);
        var vA=rg.getValues();
        vA.forEach(function(r){
          for(var i=0;i<r.length;i++) {
            r[i]="NONE";
          }
        })    
        rg.setValues(vA) 
      })
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多