gpt4 book ai didi

google-apps-script - Google 电子表格脚本 : Disable Other Users Form Adding, 删除或移动列

转载 作者:行者123 更新时间:2023-12-04 02:23:54 24 4
gpt4 key购买 nike

请耐心等待,这是我第一次编码或使用 stackoverflow。我一直在搜索 Google 文档和各种搜索引擎以寻找答案,有人告诉我在此处尝试。

我在 Google 驱动程序中有一个共享电子表格,我正在尝试编写一个脚本来防止除我以外的任何其他用户添加、删除或更新列。这是我目前所拥有的:

function onOpen() 
{
var ss = SpreadsheetApp.getActive();

var items =
[
{name: 'Show alert', functionName: 'showAlert'},
];

ss.addMenu('Custom Menu', items);
}

function onEdit(e)
{
var activeUsersEmail = Session.getActiveUser().getEmail();

//if (e.eventType == 'INSERT_ROW' || 'UPDATE_ROW' || 'DELETE_ROW')
//{
showAlert(activeUsersEmail);
//}
}

function showAlert(activeUsersEmail)
{
if (activeUsersEmail != 'mypersonalemail@gmail.com')
{
var result = Browser.msgBox
(
'Permission Denied,
'Please contact Anne Murphy at mypersonalemail@gmail.com if you wish to update a column.',
Browser.Buttons.OK
);

if (result == 'OK')
{
Browser.Close()
}
}
}

我似乎无法检查这三种情况的事件类型...此外,一旦我知道我可以检查事件的添加、更新或移动,我该如何阻止用户实际执行此操作?

任何帮助将不胜感激。再次抱歉,我迷路了。

最佳答案

在共享电子表格中,为了防止除我以外的任何其他用户添加、删除或更新您不需要脚本的列。

当您说阻止他们更新列时,这意味着您不希望他们具有写入权限。这是针对特定列或任何列。您可以将保护设置为仅查看、仅评论之一;

  • 整个电子表格
  • 单张或
  • 工作表中的区域

如果您执行其中任何一项操作,他们也将无法删除该列。

阅读你的代码,行;

//if (e.eventType == 'INSERT_ROW' || 'UPDATE_ROW' || 'DELETE_ROW')

表示您想检查他们是否逐行修改了您的工作表。

为了防止他们插入或删除一行,

  • 创建一个空白列
  • 保护专栏不被编辑
  • 隐藏该列

如果有人试图添加或删除一行,这将跨越隐藏的 protected 列,他们将收到一条错误消息,告诉他们这一点。

现在,您唯一会检测到的 onEdit(e) 是对一个单元格或一组单元格的编辑。

请注意,添加/删除行不会触发 onEdit(),它们会触发 onChange()。其中有一种特定的方法可以判断一行是否已被删除或插入。

onEdit(e) 将允许您查看受影响的范围,您可以使用电子表格参数交叉检查,

var sheet      = e.source.getActiveSheet();
// the last column of the sheet that contains content
var lastColumn = sheet.getLastColumn();
// Returns the position of the last row that has content
var lastRow = sheet.getLastRow();
// Returns the number of columns independently of content in target sheet
var maxColumn = sheet.getMaxColumns();
// Returns the number of rows independently of content in target sheet
var maxRow = sheet.getMaxRows();

我不清楚你的问题和代码究竟是你想做什么。如果我误解了请解释,我会修改我的帮助。假设这仍然很有趣并且回复还不算太晚。

关于google-apps-script - Google 电子表格脚本 : Disable Other Users Form Adding, 删除或移动列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24856045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com