如果单元格等于某个值,如何保护某个范围

时间:2019-07-14 15:04:28

标签: google-apps-script google-sheets

我正在寻找一种“有条件地保护”我床单范围的方法。我知道没有脚本是不可能的...因此,我需要这样做: 打开时,如果A2 =“ C”,则保护范围(A6:A)不被修改。否则,请保持不受保护。 应该以10张带有给定名称(Com1,Com2,...,Com10)的表重复此操作

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

签出对access and modify protected ranges in sheets的Apps脚本参考。您可以构建一个保护对象,其中包含允许谁编辑给定范围的权限。

Google表格具有简单的触发器,其中包括将运行onOpen()的函数,您可以将其放入代码中。完整的Apps Script reference for extending Sheets为构建功能来编辑和操作电子表格的结构和数据提供了很好的资源。

您将要使用.getRange('A6:A')并建立一个条件,如果@model SaveMultipleRows.Models.ProductViewModel <form method="post" action="PostData"> <table id="tblCustomers" class="table" cellpadding="0" cellspacing="0"> <thead> <tr> <th style="width:150px">Product Name</th> <th style="width:150px">Quantity</th> <th style="width:150px">CategoryId</th> <th></th> </tr> </thead> <tbody></tbody> <tfoot id="item-list"> <tr> <td><input type="text" asp-for="Products[0].Name" class="items" /></td> <td><input type="text" asp-for="Products[0].Quantity" class="items" /></td> <td><select asp-for="Products[0].CategoryId" class="items" asp-items="@ViewBag.Category"> </select> </td> @*<td><input type="button" id="btnAdd" value="Add" /></td>*@ </tr> </tfoot> </table> <button id="add">Add another item</button> <input type="submit" value="Create" class="btn btn-default" /> </form> @section Scripts { <script> $("#add").click(function (e) { e.preventDefault(); var i = ($(".items").length) / 3; var model = @Html.Raw(@ViewBag.Categories); var n = '<tr> <td><input type="text" class="items" name="Products[' + i + '].Name" /></td>' + '<td><input type="text" class="items" name="Products[' + i + '].Quantity" /></td>' + '<td><select id="Products_' + i + '_CategoryId" name="Products[' + i + '].CategoryId" class="items" /></td></tr>' $("#item-list").append(n); var categories = ""; $(model).each(function () { categories = categories + '<option value="' + this.Value + '">' + this.Text + '</option>' }); var subCateList = $("#Products_" + i + "_CategoryId"); subCateList.empty(); subCateList.append(categories); }); </script> } ,该条件将调用.protect()方法。

您还可以使用SpreadsheetApp.getActiveSpreadsheet.getSheets()从电子表格中获取所有工作表,并使用forEach()对返回的数组进行遍历,以将保护应用于所有工作表。