Google apps script 我的代码在脚本编辑器中工作,但不是作为附加组件
我对《老友记》电子表格中的游戏进行了猜测,我想隐藏我编写的代码,不让编辑知道 我在网上读了很多关于这方面的文章,我觉得最好的选择是把我的代码作为一个附加组件,所以我尝试了,做了所有的事情,附加组件添加到了我的电子表格中,但是代码不起作用,不是onEdit,也不是触发器(设置为每小时工作一次)。在chrome网上商店,我认为我做的一切都很好(我再次使用了指南),作为状态,或是没有区别,我尝试了几个小时来让它工作,但我做不到,我是编码新手,而且这个项目比我预期的要大,我必须隐藏代码,我感谢任何帮助 这是我的代码:Google apps script 我的代码在脚本编辑器中工作,但不是作为附加组件,google-apps-script,google-sheets,chrome-web-store,google-apps-script-addon,Google Apps Script,Google Sheets,Chrome Web Store,Google Apps Script Addon,我对《老友记》电子表格中的游戏进行了猜测,我想隐藏我编写的代码,不让编辑知道 我在网上读了很多关于这方面的文章,我觉得最好的选择是把我的代码作为一个附加组件,所以我尝试了,做了所有的事情,附加组件添加到了我的电子表格中,但是代码不起作用,不是onEdit,也不是触发器(设置为每小时工作一次)。在chrome网上商店,我认为我做的一切都很好(我再次使用了指南),作为状态,或是没有区别,我尝试了几个小时来让它工作,但我做不到,我是编码新手,而且这个项目比我预期的要大,我必须隐藏代码,我感谢任何帮助
var colMin = 7;
var minRow = 3;
function onEdit(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getActiveRange();
var currRow = range.getRow();
var currCol = range.getColumn();
if(sheet.getName() == "Bets") {
if(currCol >= colMin && currCol <= getLastCol("Bets") && currRow >= minRow) {
betingRange(sheet, ss, currRow, currCol);
} else if (currCol == 5 && currRow >= minRow) {
dataValBuilder(currRow, sheet.getRange(currRow, 5).getValue());
}
}
if(sheet.getName() == "Players") {
if(currCol == 3) {
.............................. etc...................
..............using some Protection and named ranged commands........
SpreadsheetApp.getActiveSpreadsheet().setNamedRange(player.gamesLogNR, gamesLogSheet.getRange(3,lastColgamesLog+3,1000));
SpreadsheetApp.getActiveSpreadsheet().addEditor(player.email);
var protection = rangePro.protect().setDescription(player.name+" betting area, player id: "+player.id);
protection.setRangeName(player.betsNR);
protection.removeEditors(protection.getEditors());
if (player.email.length > 5) {
protection.addEditor(player.email);
}
}
.......... etc...........
.......timesup is the Trigger function (works hourly)............
function timesUp() {
var betsScore = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("betsScoreHolder");
var listsSheet = .......ETC........
} else {
SpreadsheetApp.getActiveSpreadsheet().setNamedRange("rowsBlock", betsSheet.getRange(3, 7, (n+1)-3, betsLastCol-6));
}
}
break;
}
}
}
var colMin=7;
var minRow=3;
函数onEdit(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var range=sheet.getActiveRange();
var currRow=range.getRow();
var currCol=range.getColumn();
如果(sheet.getName()=“下注”){
如果(currCol>=colMin&&currCol=minRow){
betingRange(板材、不锈钢、currRow、currCol);
}否则如果(currCol==5&&currRow>=minRow){
dataValBuilder(currRow,sheet.getRange(currRow,5.getValue());
}
}
如果(sheet.getName()=“玩家”){
如果(currCol==3){
等
使用一些保护和命名的远程命令。。。。。。。。
SpreadsheetApp.getActiveSpreadsheet().setNamedRange(player.gamesLogNR,gamesLogSheet.getRange(3,lastColgamesLog+31000));
SpreadsheetApp.getActiveSpreadsheet().addEditor(player.email);
var protection=rangePro.protect().setDescription(player.name+“下注区域,玩家id:”+player.id);
protection.setRangeName(player.betsNR);
protection.removeditors(protection.getEditors());
如果(player.email.length>5){
保护。添加器(player.email);
}
}
等
…timesup是触发功能(每小时工作)。。。。。。。。。。。。
函数timesUp(){
var betscore=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“betsScoreHolder”);
var列表表=……等。。。。。。。。
}否则{
电子表格app.getActiveSpreadsheet().setNamedRange(“rowsBlock”,betsheet.getRange(3,7,(n+1)-3,betsLastCol-6));
}
}
打破
}
}
}
同样,我的代码加载项已经安装到电子表格中,但它的行为与脚本编辑器中的代码不同,我的意思是它根本不起作用
请提供帮助。“它不工作”不是有效的问题描述。您提到了简单触发器函数
onEdit
,但您的代码使用了需要授权的功能,这些功能在简单触发器中不起作用。你查阅过你的项目错误记录吗?@tehhowch谢谢你的评论,sry关于标题这是我最好的了>>我将更改编辑以安装able触发器希望它能工作,关于错误我真的不知道我需要怎么做,你能帮我品脱一下吗?给我举个例子,再次感谢@EliGueta See@tehhowch-你的评论切中要害。我设法使用了可安装的触发器,这个插件工作得很好!谢谢