function onInsertColumn(activeRng) {
/* I coded this function, and it works, so I'll omit
the implementation here because it's irrelevant.
But I haven't figured out how to get the active range
from the onChange event (to pass to this function).*/
}
function onChange(event) {
在这里,我的Google脚本Code.gs:
/* Reddit Scraper written by Amit Agarwal */
var REDDIT = "HomeImprovement";
function run() {
deleteTriggers_();
/* Fetch Reddit posts every 5 minutes to avoid hitting
the reddit and Google Script quotas */
ScriptApp.newTrigger("scrapReddit")
我正在制作一个google工作表脚本,它循环遍历所有行并获取API数据,然后一次性将所有结果粘贴到列中。一切顺利(脚本返回所有行数据),直到我开始使用下面的代码段而不是引用工作表名。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
现在,它返回它可以在运行的5分钟内获取的所有块,然后用下一个触发器重新启动,然后再次返回一个块。剧本现在要花更长的时间。
我可以想到的第一个解决方案是创建嵌套函数,这样就不会重新运行整个脚本(包括活动表的加载),而只有获取部分。但现在它给了我‘数据没有定
我以前使用google作为默认浏览器。有一天,我试图使用Google扩展将我的浏览器屏幕发送到chromecast,但我意识到我的Chrome版本已经过时了。因此,我从google网站下载了debian软件包,但我运行的依赖关系失败:
$ sudo dpkg -i /home/plinio/Downloads/google-chrome-stable_current_amd64.deb
(Reading database ... 195156 files and directories currently installed.)
Preparing to replace go
好的,我已经浏览了所有其他谷歌铬安装的东西,但它们都没有帮助我。大多数人说sudo apt-get install -f或sudo apt-get -f install,但这对我不起作用。我得到了以下信息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
google-chrome-stable
0 upg
我正在尝试设置一个24小时的计时器,当一个单元格在工作表中被编辑时。如果它已24小时未被编辑,则必须锁定该行;否则,在24小时前编辑时,必须将计时器重置为24小时。新的google应用程序脚本编程,如有任何建议将不胜感激。
function onEdit(e) {
var range = e.range;
range.setNote('Last modified: ' + new Date());
ScriptApp.newTrigger("functionToLockCells").timeBased().after(24 * 60 *60 * 1000).
我有一个函数(见下文),该函数根据基于GoogleClock()函数计算的工作表中包含的时间,以编程方式删除然后重置3个触发器,并且每天自动递增到下一个工作日(使用WORKDAY()函数)和一个包含所有节假日的范围。它设置的三个触发器之一是在下一个工作日结束时再次运行自己的触发器,其中流程重新启动。
这大约有60%的时间是有效的,其余的时间是失败的。据我所见,没有生成错误的电子邮件消息。
函数如下所示。while循环旨在确保当脚本运行时,电子表格的值不在GoogleClock()重新计算的中间,这是我最初怀疑它失败的原因。有什么建议吗?
function setCustomRunTrigger
我正在尝试运行以下脚本,以绕过Google脚本的最大执行时间。我让这个函数运行了4分钟,并设置了一个触发器,让它在5分钟内再次运行,从它在处理过程中停止的地方开始。第一次通过它时,它运行得很顺利,并设置了触发器。当触发器第一次运行时,它的处理速度非常慢,然后就不再运行了。有人能告诉我我做错了什么吗?有没有办法解决这个问题?
function updateAll() {
var startTime= (new Date()).getTime();
var startRow = ScriptProperties.getProperty("start_row");
/
我编写了一个脚本,它可以遍历Google中的所有文件,并编写一个电子表格,其中包含所有文件的名称、文件夹、URL和最后更新的日期。
function Start_Up() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
sheet.clear();
sheet.appendRow(['Name', 'Folder', 'URL', 'Updated'])
v
在我的Google页面“监视列表”中,我有以下代码:
var EMAIL_SENT = "EMAIL_SENT";
function sendEmailsAdvanced() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Watchlist"); // To only handle the Watchlist sheet
var d = new Date();
var timeStamp = d.getTime();
var currentT
我下面的脚本不能运行。当Google Sheets脚本编辑器中的某个列的下拉选择为"Complete“时,我希望自动将整行移动到新的工作表中。
下面是我的代码:
/**
* Moves row of data to another spreadsheet based on criteria in column 6 to sheet with same name as the value in column 4.
*/
function onEdit(e) {
// see Sheet event objects docs
// https://developers.g
我使用了,并修改了一点,将大约9万封电子邮件(从一个免费的gmail帐户)复制到一张纸上。
脚本只工作一次。在一个周期之后,触发器将以“未知的原因”“禁用”。
我减少了批处理的大小,增加了时间间隔,但仍然得到了相同的错误。
我哪里出问题了?
/**
* Creates the first trigger to call batchArchiveEmail.
*/
function init(){
var Triggers = ScriptApp.getProjectTriggers();
for (var p = 0; p < Triggers.length; p
我试图让这个脚本运行时,任何文本或日期输入到操作单元格(e.value==“是”)想要更改“是”的任何输入触发脚本。 function onEdit(e) {
// see Sheet event objects docs
// https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
var ss = e.source;
var s = e.range.getSheet();
var r = e.range;
// to let you modify
我在一个特定的电子表格中有两个表格,它们都有与它们相关的表单提交。第一个表单/表单应该发送一封包含表单提交数据的电子邮件(原始表单是由Agarwal创建的,这里是)。第二个表单/工作表没有做什么特别的事情,因为它只是从表单中收集数据。所讨论的脚本被设置为On表单提交触发器。
我遇到的问题是,脚本有时从表单/sheet2 2运行。我想指定脚本需要从哪个工作表/表单上触发才能运行。我创建的修改代码是基于大量的环顾四周。下面是片段:
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for (var i
当L列中的单元格填充颜色更改为白色时,我一直在使用下面的代码在列C中插入时间戳。
代码运行良好,但当我使用Fill Color画板桶工具选择白色时,它不起作用,但当我使用Paint格式画板辊工具时,它不工作。
如何使代码与这两个工具一起工作?
双元答案
谷歌单张
/**
* Inserts a timestamp when a cell is formatted by choosing a fill color.
* Runs on an installable 'on change' trigger.
* https://developers.google.com/apps-
我在Google脚本中有两个工作触发函数,当表单响应电子表格获得新的提交时触发。其中一个在电子表格中插入“编辑您的提交”url。另一个查找回复的电子邮件,并向他们发送确认。
我很难理解的是如何首先填充url ,然后发送包含该url的电子邮件。
(_Google脚本与浏览器:_中的js不同)
设置触发器
function Initialize() {
var triggers = ScriptApp.getScriptTriggers();
for (var i in triggers) {
ScriptApp.deleteTrigge
我试图基于单元格值将一行数据移动到另一个工作表中。我使用了在互联网上进行研究后发现的这段代码。
/**
* Moves row of data to another spreadsheet based on criteria in column 6 to sheet with same name as the value in column 4.
*/
function onEdit(e) {
// see Sheet event objects docs
// https://developers.google.com/apps-script/guides/triggers/e
基于LINK,我了解了当Google Apps脚本超过5分钟的最大运行时间时,如何延长脚本的运行时间。 它可以工作,但我不确定我是否使用了正确的方法。我正面临着下面描述的一些问题。 从主函数开始,我传递变量"t“作为循环的起始点,并调用函数Foto_function。如果时间超过240秒的限制,则会触发。 if (isTimeUp(today)) {
// schedule a trigger for a different function
SpreadsheetApp.activeSheet.getRang
我正在为google表设置一系列脚本,我希望能够根据输入第三列的时间自动排序,首先按第一列(A日期字段)和第三列(A时间字段)排序。我一直得到:
'TypeError:在对象数据中找不到函数getRange。(第19行,文件“代码”)。
任何和所有的帮助都将是伟大的!我的googling并没有提到我在做什么,而且我发现其他脚本的混合也不是很好。
//Assign Variables.
//This variable is for which column the system should be looking at for sorting. If you edit dir
我有一个谷歌表单,它有很多字段。我已经设置了一个触发器来将表单值发送到某个特定的位置(还将其保存在google驱动器中的excel工作表中)。但它也给我发了空值,用户还没有选择。如何通过修改下面的代码只发送已填充的值到邮件。
function Initialize() {
var triggers = ScriptApp.getScriptTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SendGoogleF
我想问一下,在Google电子表格中,循环没有按照我的预期工作。当我使用Logger.log运行时,它是工作的,但它在范围A2:A20和B2:B20上显示相同的值,请提供如何使其工作的建议。
这是我想在Google电子表格上解析的XML文件:
function parseXml() {
//Define gsheet output information
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');
//Set
我的java appengine已经运行了几个月了。但在过去的两天里,我在做/_ah/热身时看到了5个HardDeadlineExceededError,现在是34个。
错误存在于简单的类加载内容中。
Uncaught exception from servlet
com.google.apphosting.runtime.HardDeadlineExceededError: This request (4a25d7231dc330cc) started at 2012/02/23 15:43:53.912 UTC and was still executing at 2012/02/
我看过就这个问题提出的若干问题,但我所看到的解决办法似乎都不适用于我正在进行的工作。
我有一个附加在电子表格上的脚本,目标是每天晚上运行这个脚本,生成驱动器中所有文件的主文件列表,并将它们显示在电子表格上。由于文件夹,子文件夹,子子文件夹中的文件数量(你知道),它无法在指定的时间框架内完成对电子表格的更新。
function clear_spreadsheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
sheet.clear();
sheet.appe
我试图将所有附件发送到我的Google帐户,但我在搜索GmailApp.search时遇到了问题。
我家里有一个摄像头,每5分钟发送一封电子邮件给同一个主题,每条信息都有一个附加文件,名字是day- file .day。
首先,我认为在逐个标签搜索,然后在过程中,我放置了一个新的标签来标记和不重复的信息,但我总是收到所有的信息。
我试着测试了很多种方法,并且总是收到带有标签:processed的消息。
function () {
//All message of the camera have the label GoogleDrive
var threads = GmailApp.s
我有一个Google,它注册了来自Google表单的条目。每次打开工作表时,我都会设置一个脚本来自动关闭该工作表,并设置一个触发器来在打开时运行该脚本,但是没有进行排序。我对脚本和javascript的知识有限。下面的脚本有什么问题?
function OrderByEvent() {
// The numeric index of the column you wish to keep auto-sorted. A = 1, B = 2,
// and so on.
var SORT_COLUMN_INDEX = 10;
// Whether to sort the data in asce
我使用电子表格中的数据创建google表单“动态”。另外,我在提交表单事件上安装触发器。
ScriptApp.newTrigger('onSubmit')
.forForm(form)
.onFormSubmit()
.create();
onSubmit函数放在电子表格脚本中,因为没有办法将函数指向表单一侧(我用脚本代码复制存在的表单,但由于无法使该函数运行,所以没有用)。
好的,我在电子表格端处理提交事件。没问题。但当我试图找出“e”对象的来源时:
function onSubmit(e) {
var response, items, i,
我正在尝试使用创建一个报告,该报告显示我所有项目中用户安装的所有触发器。
这段代码遍历我的Google Drive中的所有文件,并为所有属于Google Sheets文件的文件生成一个文件in数组,然后尝试获取每个文件的触发器:
var spreadsheetIds = [];
// get all spreadsheets in my google drive
var files = DriveApp.getFiles();
while (files.hasNext()) {
var file = files.next();
var type = file.
下面的应用程序脚本与接受来自Google表单的数据的Google电子表格相关联:
function writePatientData() {
var spreadsheet = SpreadsheetApp.openById("<spreadsheet id>");
var sheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);
//get last row in active/main sheet
var numRows = sheet.getLastRow();
我目前正在使用google sheets和一个脚本来移动行的一部分,当我在数据验证列中选择"ok“时,问题是它复制了每个单元格的公式,而不是显示的值,以及想法,我不是最好的,所以任何帮助都是巨大的。
/**
* Moves row of data to another spreadsheet based on criteria in column 6 to sheet with same name as the value in column 4.
*/
function onEdit(e) {
// see Sheet event objects docs
// h
在google应用程序脚本中批量插入。我使用push将数据从表写入到工作表。有没有一种方法可以进行批处理,插入3000条记录,并通过触发器循环执行几分钟后,直到所有记录都插入到google应用程序脚本中。
function myBatchInsert() {
var connection = Jdbc.getConnection("jdbc:mysql://host:port", "user", "passwrd");
var query = connection.createStatement();
var re
大约20%的时间,我的Google应用程序脚本会发送一封重复的电子邮件,似乎是随机的。我尝试将MailApp.sendEmail()切换为GmailApp.sendemail(),并添加了一些休眠行,以防代码在更改工作表之前以某种方式再次运行。我只有一个运行脚本的变更触发器。也许这与我的gmail登录了多少台设备有关?我在这方面是新手,所以我可能遗漏了一些明显的东西。 脚本: function SortResponse() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(
? 所以ui.R文件运行得很好。但是,我怀疑server.R可能是导致这里问题的原因。预期的行为是让数据框显示在每个页面上嵌入的HTML图表上方。但是,不会生成数据帧。预期的目标是使用google sheets包,读取google sheet,然后将其变形为在R Shiny上公开的数据框架。 我尝试将数据框函数和定义放在ui.R和server.R的上面和下面。但是,我没有从任何输出中得到任何结果。 这是为托管在Ubuntu 16.04服务器上的Shiny-Server编写的。 #
# This is the server logic of a Shiny web application.