Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌新表单保护问题_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌新表单保护问题

Google apps script 谷歌新表单保护问题,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在谷歌新表单中遇到一些奇怪的保护问题。我已经创建了一个我正在经历的演示。工作表的URL为: 我已使用“数据保护的工作表和范围…”下的“除某些单元格外的工作表保护”方法,仅为所有者编辑工作表,第5行至第7行除外 我还有一个简单的用户功能菜单,在OpenWich上调用,它包含一个简单的Google应用程序脚本,用于插入给定数量的行(下面的代码) 当其他用户访问工作表时,会发生以下情况: 基本的保护措施似乎正在发挥作用。用户只能编辑第5行到第7行 “插入行”功能(在“用户功能”菜单下选择)生成“服

我在谷歌新表单中遇到一些奇怪的保护问题。我已经创建了一个我正在经历的演示。工作表的URL为:

我已使用“数据保护的工作表和范围…”下的“除某些单元格外的工作表保护”方法,仅为所有者编辑工作表,第5行至第7行除外

我还有一个简单的用户功能菜单,在OpenWich上调用,它包含一个简单的Google应用程序脚本,用于插入给定数量的行(下面的代码)

当其他用户访问工作表时,会发生以下情况:

  • 基本的保护措施似乎正在发挥作用。用户只能编辑第5行到第7行
  • “插入行”功能(在“用户功能”菜单下选择)生成“服务错误:电子表格”
  • 如果用户试图删除3个未受保护的行中的任何一行,则消息“无法保存您的更改”。复制任何最近的更改,然后还原到早期版本…”出现在屏幕顶部的红色框中。单击“还原到早期版本…”链接可撤消删除
  • 如果我删除了所有保护,那么用户的一切都是100%——插入行功能——删除行等

    我在这里复制的功能与我多年来在旧表单中使用的功能非常相似,没有任何问题(即保护电子表格的某些区域不被共享用户编辑)

    我必须补充一点,几天前我发布了关于insert row函数不起作用的问题

    这是我的功能代码:

    function onOpen() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var menuEntries = [{name: "Insert Rows", functionName: "insertRows"}];
      ss.addMenu("User Functions", menuEntries); 
    }
    
    function insertRows() {
      var numRows = Browser.inputBox('Insert Rows', 'Enter the number of rows to insert', Browser.Buttons.OK);
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getActiveSheet();
      var curs = sheet.getActiveCell();
      var cursRow = curs.getRow();
      var cursLastCol = sheet.getLastColumn();
      sheet.insertRowsAfter(cursRow, numRows);
    
      var source_range = sheet.getRange(cursRow,1,1,cursLastCol);
      var target_range = sheet.getRange(cursRow+1,1,numRows);
      source_range.copyTo(target_range);
    
      Browser.msgBox('Insert Rows', +numRows+' rows successfully inserted.', Browser.Buttons.OK);
    
    }
    

    有人能帮忙吗。我有一些大客户,我为他们制作了复杂的在线电子表格,但现在在新的表格下无法正常工作。

    尝试为onOpen()设置项目触发器,而不是使用简单的onOpen()。然后它以您的权限而不是当前用户的权限运行。只需单击资源/当前项目触发器并添加一个新触发器。

    是否有人可以提供帮助。我越来越绝望了…看起来你在这里提交了一个bug,尽管信息少得多:。一般来说,最好将问题隔离到一个小案例中,以再现问题,而不是包含整个代码。请跟踪问题跟踪程序,因为这是报告错误的最佳场所。谢谢。。。我会试试看。。。我在想,也许我是因为没有反应而发疯了。。。好的,我刚刚尝试为onOpen()设置一个项目触发器,但仍然得到相同的结果“服务错误:电子表格”。