我是Javascript和谷歌应用程序的新手,但慢慢找到我的脚(帮助)
我编写了一个脚本来执行各种操作,这个脚本的一部分是安装触发器.这里是.
function setTrigger() {
var ss = SpreadsheetApp.getActive();
var triggers = ScriptApp.getProjectTriggers();
Logger.log('Amount of triggers ' +triggers.length);
var j = 0;
for (var i = 0 ; i < triggers.length;i++){
if(triggers[i].getHandlerFunction() == 'getNotes' ){j++;}
}
Logger.log('Amount of matching triggers ' +j);
if(j == 0 ){ScriptApp.newTrigger("getNotes").forSpreadsheet(ss).onFormSubmit().create();}
}
Run Code Online (Sandbox Code Playgroud)
这是我遇到的问题.
上面的代码在onOpen()触发器中调用.当我打开工作表并检查日志时,我的触发器未安装,我收到以下消息.
Execution failed: You do not have permission to call getProjectTriggers
Run Code Online (Sandbox Code Playgroud)
当我onOpen()手动运行时.触发器已安装.
我目前拥有电子表格,但理想情况下,我想与人分享,触发器安装和工作.
有任何想法吗?
我有一个我正在尝试开发的电子表格,可以使用它的一些帮助.
表单的快速摘要,是否包含需要人工注意/工作的案例/项目.
在它到达人类之前,任何邮政编码都是正确的非常重要.所以在提供表格的表格上,我有一个正则表达式,确保邮政编码格式正确/正确的字符等.
这并不能防止所有错误,所以在工作表本身,我有一个检查邮政编码的vlookup,如果找不到匹配,则在工作表的其他地方添加了错误的邮政编码(列BN),我们知道该项目需要修复.
这仍然不理想,因为它需要人找到所有"不正确的邮政编码"条目并更正邮政编码.这些可以隐藏/点缀在一张2000多个条目中.
所以我的下一步是创建一个查找"不正确的邮政编码"值的脚本,并记录它所找到的工作表的行.使查找和修复更容易.它还会告诉您总错误数量.
这是代码:
function postcodeFix() {
var sourceSheet = "Form Responses";
var postcodeError = "Incorrect Postcode";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sourceSheet);
var values = sheet.getRange("BN3:BN").getValues();
var errorArray = [];
for (i = 0; i < values.length;i++) {
if (values[i] == postcodeError)
{
errorArray.push(i+3);
}
}
if (errorArray.length <= 0)
{
Browser.msgBox("No Errors Found","All postcodes are correct, no errors found.",Browser.Buttons.OK);
}
else
{
Browser.msgBox("Errors Found","There are currently " + errorArray.length + " Postcode errors …Run Code Online (Sandbox Code Playgroud) 我开始做一些事情,并且很早就遇到了障碍,试图以我对 javascript 的有限知识尽早思考解决问题的方法。
我确定这是一件简单而烦人的事情,但我似乎看不出是什么导致了错误。
只是在编写一个脚本,最终使用谷歌脚本显示来自谷歌电子表格的数据。但是,是的,似乎无法反向循环特定值。
请在下面查看我的注释代码,并提前致谢。
简单地尝试向前循环遍历数组。决定去了解基础,因为我很难过。作品。记录器显示我上升了 1
function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();
for(i=0;i < values.length;i++){
Logger.log([i]);
}
}
Run Code Online (Sandbox Code Playgroud)
与上面相同,除了我试图反向遍历数组。工作,但到目前为止我们只问它我们在循环的哪个部分。
function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();
for(i=values.length;i > 0 ;i--){
Logger.log([i]);
}
}
Run Code Online (Sandbox Code Playgroud)
准时系好你的裤子,因为我们正在向数组请求数据,向前循环。有用。它返回数组中每个条目的整行
function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();
for(i=0;i < values.length;i++){
Logger.log([i]+" " + values[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
让我们月球漫步并再次尝试反向循环。因为我很坏,我很坏,嘻嘻,哇哦。有用 :)
function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values …Run Code Online (Sandbox Code Playgroud)