See*_*anc 5 google-docs google-sheets
我创建了一个电子表格,其中除单个单元格之外的所有工作表都受到保护,无法编辑,用户应该在其中输入搜索值,该搜索值会过滤工作表。我共享了启用编辑功能的电子表格,以实现这一点,但这也使用户能够创建新工作表,这是我想阻止的。
也许我没有使用最佳的方式来实现我想要的,所以欢迎提出建议。我看到人们建议在类似的用例中使用表单,但我不知道如何将他们的调查功能应用于我的需求。
编辑:这是共享电子表格:https://docs.google.com/spreadsheets/d/1C4mrBWJxPLrFQ4bp82UA2ICOr1e6ER47wF7YuElyoZg/edit ?usp=sharing
您可以使用脚本来删除每个新创建的(不是由所有者创建的)工作表。以下是此类脚本的示例:
// Deletes any tab named "SheetN" where N is a number
function DeleteNewSheets() {
var newSheetName = /^Sheet[\d]+$/
var ssdoc = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ssdoc.getSheets();
// is the change made by the owner ?
if (Session.getActiveUser().getEmail() == ssdoc.getOwner().getEmail()) {
return;
}
// if not the owner, delete all unauthorised sheets
for (var i = 0; i < sheets.length; i++) {
if (newSheetName.test(sheets[i].getName())) {
ssdoc.deleteSheet(sheets[i])
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后设置一个触发器,DeleteNewSheets在发生更改(例如工作表创建)时运行此函数。
注意:如果英语不是文档语言,您应该更改正则表达式/^Sheet[\d]+$/,例如法语就应该是/^Feuille [\d]+$/。
| 归档时间: |
|
| 查看次数: |
9835 次 |
| 最近记录: |