Google表格:保护范围,仅允许编辑**值**(即保护所有格式)

时间:2015-06-08 03:45:34

标签: google-sheets

我认为目前版本的Google表格无法做到这一点,但我想无论如何都会问:

我希望用户能够在电子表格中输入特定范围内的值,但我想阻止他们更改格式(特别是数据验证和条件格式)。我还想阻止他们添加新的行/列或删除行/列。

这可能吗?

4 个答案:

答案 0 :(得分:1)

为保护条件格式,我将范围设置为比其需要的行或列大一格,并保护此多余的行或列。然后,包含其范围内受保护单元格的条件格式将无法再修改。

答案 1 :(得分:0)

保护工作表选项可能会限制其他用户添加/删除行的能力,但是我也花费了大量时间尝试解决条件格式设置问题。最后,我最终使用了两种解决方法;

  • 我使用appscript进行条件格式设置。这是最有效的解决方案,但是由于我不太熟悉编写代码,所以发现它很麻烦。下面的部分示例。
  • 我还使用了更快的解决方法,即对用户编辑的单元格旁边的单元格进行条件格式化,然后保护该单元格。
if (values[i] == 'SUB') {
      sheet
      .setRowHeight(i+1, 19)
      .getRange('A'+n+':CB'+n)
      .setBackgroundColor('#b7b7b7')
      .setFontFamily("Abel").setFontSize(6).setFontColor('white').setFontWeight("bold")
      .setVerticalAlignment(DocumentApp.VerticalAlignment.MIDDLE).setHorizontalAlignment("center")
      .setBorder(null, null, true, null, null, null,'white',SpreadsheetApp.BorderStyle.SOLID_THICK)   /////// top,left,bottom,right,vertical,horizontal,color,style;

      sheet.getRange('O'+n+':O'+n).setBackgroundColor('white')
      sheet.getRange('AF'+n+':AF'+n).setBackgroundColor('white')

      sheet.getRange('AJ'+n+':AJ'+n).setBorder(null, null, null, true, null, null,'white',SpreadsheetApp.BorderStyle.SOLID_THICK)
      sheet.getRange('AN'+n+':AN'+n).setBorder(null, null, null, true, null, null,'white',SpreadsheetApp.BorderStyle.SOLID_THICK)
      sheet.getRange('AR'+n+':AR'+n).setBorder(null, null, null, true, null, null,'white',SpreadsheetApp.BorderStyle.SOLID_THICK)
      sheet.getRange('AV'+n+':AV'+n).setBorder(null, null, null, true, null, null,'white',SpreadsheetApp.BorderStyle.SOLID_THICK)

答案 2 :(得分:-1)

您可以在新页面上执行此操作。右键单击工作表名称,选择保护工作表,选择"除了某些单元格"你可能从那里得到它......

您可能有一张旧纸张,因为它不适用于某些现有纸张。如果您点击"数据"并且只能看到"命名和保护范围"作为单个条目而不是2个单独的菜单项,您使用的是较旧的工作表,但不允许保护。

答案 3 :(得分:-2)

最好的解决方案也是最简单的方法是Ctrl + Shift + V将数据粘贴为仅值。我也一直尝试这样做,因为我们处理的工作表涉及从不同来源进行复制/粘贴。在新数据之上进行绘画格式设置很烦人,而且浪费时间。练习Ctrl + Shift + V粘贴即可避免这样做。受保护的范围仅阻止其他用户输入数据。这不利于保持格式。