google-apps-script - 运行带有锁定单元格的脚本
问题描述
我编写了以下脚本,作为具有完全编辑权限的工作表的创建者,我可以正确运行。该工作表还与另一个具有编辑权限的人共享,但某些单元格已为该用户锁定。结果,当他们打开工作表时,脚本无法运行。错误似乎首先出现在这一行:
var values = range.getValues().map(function(d){ return d[0] })
我试图重写代码,但我最终所做的只是破坏它。如果我必须为用户解锁单元格,那么我如何确保他们不能更改在那里输入的信息?信息通过公式从锁定和隐藏的工作表中调用。
function onOpen(){
var ss = SpreadsheetApp.getActive();
var sheetsCount = ss.getNumSheets();
var sheets = ss.getSheets();
for (var i = 0; i < sheetsCount; i++){
var sheet = sheets[i];
var range = sheet.getRange(6, 3, 35);
var values = range.getValues().map(function(d){ return d[0] });
//clear previous border
var selection = sheet.getRange(6,2,35,5)
selection.setBorder(false,false,false,false,false,false);
//set border
var index = values.indexOf("");
var border = sheet.getRange(5, 2, index+1, 5);
border.setBorder(true, true, true, true, true, true);}
}
解决方案
so if I have an installable trigger the script will run because the person has editing rights but via my credentials so bypassing the locked cells. Would the following adaptation achieve this?
function createSpreadsheetOpenTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('borders')
.forSpreadsheet(ss)
.onOpen()
.create();
}
function borders(){
var ss = SpreadsheetApp.getActive();
var sheetsCount = ss.getNumSheets();
var sheets = ss.getSheets();
for (var i = 0; i < sheetsCount; i++){
var sheet = sheets[i];
var range = sheet.getRange(6, 3, 35);
var values = range.getValues().map(function(d){ return d[0] });
//clear previous border
var selection = sheet.getRange(6,2,35,5)
selection.setBorder(false,false,false,false,false,false);
//set border
var index = values.indexOf("");
var border = sheet.getRange(5, 2, index+1, 5);
border.setBorder(true, true, true, true, true, true);}
}
推荐阅读
- python-3.x - 在 Jetson Xavier 上使用 OpenCV 的低相机 FPS
- mysql - 如何从具有连续字段名称和值的txt文件中加载MySQL中的数据?
- javascript - Leaflet featureGroup().getLayers() 返回空,而对象已定义
- google-data-studio - 重置所有操作 - Google 数据洞察中的交互式过滤器
- wordpress - Docker-compose 重新运行现有的包含
- python - 使用 PySide 的圆形进度条
- batch-file - FIND:管道 ping 命令时参数格式不正确
- ruby-on-rails - 如何在活动管理员索引视图中以自定义格式显示地址
- python-3.x - 将一个子列表的元素转移到另一个
- bash - 如何在 Git Bash 中从 MinTTY 更改为 Windows 10 默认控制台?