【问题标题】:Google Sheets Script to allow cells to have data added to them but protect cells from being DeletedGoogle 表格脚本允许单元格添加数据但保护单元格不被删除
【发布时间】:2023-01-18 05:19:55
【问题描述】:

我对人们从谷歌表格中删除单元格而不是清除内容有疑问。 这些工作表是静态的并且具有条件格式,因此当单元格被删除时,条件格式变得非常疯狂。 我需要一个脚本来防止单元格被删除,但仍允许输入数据并允许使用我使用的清晰内容脚本清除数据。

我有几个人在谷歌工作表的工作表的 A 列中输入数据。一个人将获取该数据并使用它执行工作表之外的功能,然后清除内容,以便此过程可以不断重复。

有很多与单元格相关的条件格式设置,因此用户可以查看他们输入的数据是否有效。如果最终用户运行此脚本来清除内容:

function ClearCells1() {
var sheet = SpreadsheetApp.getActive().getSheetByName('INT QC');
sheet.getRange('A2:A9660').clearContent();}           

我想确保他们无法“删除”错误的单元格,因为这会导致条件格式变得一团糟。

【问题讨论】:

  • 我认为如果您可以提供有关您尝试实现的脚本的更多详细信息,例如minimal reproducible example,以便我们全面了解您要执行的操作,那会更好。
  • 谢谢你。我已经编辑了我的问题。让我知道是否还有其他我可以添加的内容可能有助于澄清。

标签: google-apps-script google-sheets


【解决方案1】:

你可以试试下面的脚本

function onEdit(e) {
  var user = e.user;
  var oldVal = e.oldValue
  var newVal = e.value;
  var r = e.range;
  var rCol = r.getColumn();
  var ss = r.getSheet().getSheetName();
  var sheet = SpreadsheetApp.getActive().getSheets();

  if(user!="user@domain.com" && newVal==undefined && rCol==1 && ss==sheet[0].getName())
  {
    r.setValue(oldVal);
    SpreadsheetApp.getUi().alert("You do not have enough permissions to delete data");
  }
}

任何用户应该仍然能够运行您当前的脚本来清除column A 中的数据而不会出现任何问题。

参考:

【讨论】:

    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多