【问题标题】:How to remove data validations?如何删除数据验证?
【发布时间】:2016-02-09 10:01:19
【问题描述】:

我想从工作表中删除所有数据验证,尝试了以下操作,但并没有摆脱它们。无论如何要通过应用程序脚本来做到这一点?

var ss = SpreadsheetApp.getActiveSpreadsheet();
var accountSheet = ss.getSheetByName("Account A");
accountSheet.getRange(1,1,274,61).clear();

【问题讨论】:

  • 看起来它是一个已知的bug,带有 clear(),尽管也可以使用 clearDataValidations() 。
  • 我得到:TypeError: Cannot find function clearDataValidations in object C2:D7.
  • 啊我明白了,需要做类似的事情:var validations_to_clear = active_sheet.getRange(2, 3, 6, 2);

标签: google-apps-script google-sheets


【解决方案1】:
accountSheet.getRange(1,1,274,61).setDataValidation(null)

这应该可以完成工作。

【讨论】:

    【解决方案2】:

    从整个工作表中删除所有数据验证的更通用答案(从工作表中的所有单元格中删除):

    mySheet.getRange(1,1, mySheet.getMaxRows(), mySheet.getMaxColumns()).setDataValidation(null);
    

    理论上你可以使用这个不那么冗长的版本(可能会更快,因为它影响的单元格范围更小):

    mySheet.getDataRange().setDataValidation(null);
    

    但是,DataRange 之外可能存在确实具有验证的空单元格,并且这些验证不会被删除(它们超出了 DataRange 的范围,不会被 DataRange 选择)。因此,您应该使用我提到的第一个版本以获得更健壮的代码:它选择工作表中的所有单元格并删除验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2021-10-18
      • 2012-02-08
      • 1970-01-01
      相关资源
      最近更新 更多