每当我刷新的电子表格(在已改变了它的一些应用程序的脚本代码) CMD- R,Safari会自动关闭脚本编辑器选项卡.
如何避免此标签被关闭?
在谷歌脚本编辑器中
function foo(){...//超过100行..}
点击{或}以红色突出显示
少于100行都是绿色的.
它是否会影响代码,或者只是让我们感到困惑.
我正在创建一个包含相关脚本编辑器中大量代码的大型Google电子表格.
当我在LINE 1上编写句点时,我得到自动完成帮助(参见下面的代码),但是在LINE 2上写句点时却没有.在LINE 2上写句点时,是否可以使用JSDoc语法获得自动完成帮助?
我没有成功使这适用于普通的javascript对象和Spreadsheet相关的对象.我对两者都很感兴趣.
/** Failed attempt on getting autocomplete help using JSDoc on a google Range object
* @returns {Range}
*/
function getMyRange() {
return SpreadsheetApp.getActiveSpreadsheet().getRangeByName('myRange');
};
/** Failed attempt on getting autocomplete help using JSDoc on standard JS-object
* @returns {Array}
*/
function getMyArray() {
return SpreadsheetApp.getActiveSpreadsheet().getRangeByName('myRange');
};
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Please think of the code below as 4 separate examples, nothing
// of the below is meant to compile …Run Code Online (Sandbox Code Playgroud) autocomplete google-apps-script jsdoc3 google-apps-script-editor
我不确定这是否可能,而且说实话,我没有尝试很多事情,因为我不知道从哪里开始。顺便说一句,我正在使用 Google Sheets 中的脚本编辑器。我知道有 SpreadsheetApp.getRange() 和另一个来获取值或类似的东西。但我想要的有点具体。
有没有办法获取给定行中的所有单元格数据并将其放入数组中?行的大小会有所不同,这就是为什么我无法确定精确的范围。
例如,如果我要让行具有这些值:
abc | 123 | 987 | efg
blah| cat | 654
Run Code Online (Sandbox Code Playgroud)
我希望能够获取这些值并将它们放入一个数组中,例如 ["abc", "123", "987, "efg"]。然后,如果我在下一行运行该函数,它将是 [ “等等”,“猫”,“654”]。
实际上,只要有我能够使用的分隔符,它就可以放入任何数据类型中。
先感谢您!
scripting cell google-sheets google-sheets-api google-apps-script-editor
对于我的谷歌表格,每一行都是随机填充的,但是当它被填充时,我想要一个函数来运行。每次填充内容时,都是下一行(不是单元格或随机行)。
我现在正在运行 onChange 触发器。它设置为“在更改时从电子表格运行 FunctionA”。在该函数中,如何获取已专门更改/更新的行?我将用来操作该行的函数/方法是什么?
我四处搜索,但找不到合适的答案。
triggers onchange google-sheets google-apps-script google-apps-script-editor
从文档中,https://developers.google.com/apps-script/guides/standalone
\n\n运行独立脚本
\n\n编写脚本后,有两种方法可以从脚本编辑器运行函数:
\n\n选择“运行”菜单,然后选择要执行的函数的名称。
从工具栏的选择框中选择要执行的函数的名称,然后单击\xe2\x96\xb6。
它没有告诉我们如何将参数值传递给我想要运行的函数。
\n\n那么如何将参数值传递给函数并运行这些函数呢?
\n该方法.setValues()将采用一个数组[[0],[1],[2],[3]]并将其写入.getRange()必须在单列的多行中的:A1,A2,A3,A4。
相反,我想编写相同的数组,但将其写到单行:A1,B1,C1,D1。这是否可能,或者我必须重新排列数组以始终写入单个列?
编辑:对不起,我认为我不清楚。我基本上是在寻找一种方法或类似于使用数组的appendRow方法的东西。该数组可以是1D或2D(我可以轻松地编写一个循环来创建任一数组)。appendRow对我不起作用的原因是因为此方法会将数组放置在数据的底部。我想将数据行放置在我可以指定的范围内。
例如,使用上面的数组,我想将该数组写入具有getRange(1,3,10,10)中已经存在的数据的getRange(1,4,1,4)。
javascript google-sheets google-apps-script google-apps-script-editor
我拥有一个谷歌表格,我怎么能得到它的js脚本?
我单击脚本编辑器,但没有相应的js我可以找到.
我已经在互联网上搜索但没有预期的答案.
- 2017年8月20日更新
假设我拥有这样一个表单: Sample Form.
如何获取此表单的相应Google脚本?
即
function myFunction() {
// Create a new form, then add a checkbox question, a multiple choice question,
// a page break, then a date question and a grid of questions.
var form = FormApp.create('Sample Form');
var sect1 = form.addSectionHeaderItem();
var item = form.addCheckboxItem();
item.setTitle('What condiments would you like on your hot dog?');
item.setChoices([item.createChoice('Ketchup'), item.createChoice('Mustard'), item.createChoice('Relish')]);
var item2 = form.addMultipleChoiceItem().setTitle('Do you prefer cats or dogs?');
// .setChoiceValues(['Cats','Dogs'])
// .showOtherOption(true);
var …Run Code Online (Sandbox Code Playgroud) javascript google-apps-script google-forms google-apps-script-editor
我有一堆服务器端代码,我使用 Logger.log("message") 从中记录。但是一个 .gs 文件不会记录!即使有这么简单的声明:
function uploadFiles(form) {
Logger.log("uploadFiles() Hello?");
...
}
Run Code Online (Sandbox Code Playgroud)
如此简单,但我得到了 zilch。有谁知道为什么我无法从一个 .gs 文件中获得任何日志输出而同一项目中的其他人可以正常记录的原因?
从今天早上开始我就无法编辑脚本了。我现有的指向电子表格的脚本链接继续工作,但是当我尝试编辑它们或编辑新的脚本时,我只得到一个阴影的上部栏,并且无法使用它。
上次我的一个脚本出现了一些错误,谷歌是否有可能因为内存使用过多而“禁止”我使用脚本?
提前致谢,
大卫
我创建了一个电子表格来跟踪约会。在此电子表格中,我具有动态相关的下拉列表,因此列表1中的选择将填充列表2中的选项。这如下:
单元格C2:客户端-客户端1或客户端2。(在此示例中使用,实际列表将扩展。)
如果单元格C2 =客户端1,则地址下拉列表如下:
单元格C3:地址-地址1或地址2。
如果单元格C2 =客户端2,则地址下拉列表如下:
单元格C3:地址-地址3或地址4。
客户端列表的数据验证很简单,因为它是常量,可以在列之间进行复制。但是,不能从多个地址复制对从属地址列表的数据验证,因为它始终引用C列,并且与相对客户列表失去连接。
单元格C3(地址列表)的实际数据验证如下:
单元格范围='DIARY(V-2.1)'!C3
条件='日记(V-2.1)'!C53:C55
单元格C53:C55由一个过滤器公式填充,该公式将根据单元格C2中客户端的选择对相关地址进行排序,从而依次填充C3中的地址列表。
可能值得注意的是,我每列有10组这些约会空位(每天10个),所以我对每个单独的约会都使用了过滤功能,因此它们可以独立工作,但是即使这很繁琐,所以我需要能够从C列开始复制该列(或仅进行数据验证),并使它相对于该列中的过滤器功能保持不变。
请查看下面的示例电子表格链接,这一切都说得通!在示例中,我已将C列复制到D列,并且地址列表的数据验证已针对所有十个约会空位分离。(所有编辑都是免费的。)
注意:这些单元格必须是下拉列表-范围列表-用于此特定电子表格的功能。
如果有人可以提供帮助,那么我将不胜感激,因为我勤奋地搜索了论坛并且找不到解决方案。我确实看过了这个视频(这是我的头),它似乎是使用Java脚本实现的:
https://www.youtube.com/watch?v=ZiYnuZ8MwgM&feature=youtu.be
spreadsheet google-sheets-api google-sheets-query google-apps-script-editor
当我选择脚本的最后一个大括号时,它看起来像这样:
从逻辑上讲,它必须显示为绿色以确认一切正确,例如:
但是脚本运行到最后没有报错,如果脚本过大或者脚本有错误,是否正常?
换句话说,最后一个大括号在选择时是否一定要变绿?
javascript ×2
autocomplete ×1
cell ×1
google-forms ×1
jsdoc3 ×1
onchange ×1
scripting ×1
spreadsheet ×1
triggers ×1