我很难找到关于如何设置onEdit触发器的好资源。我有一个只想在编辑特定工作表时运行的函数。例如,假设我有表1、表2、表3、表4、表5。我的脚本从工作表2、3、4中提取数据并填充工作表1。我只希望在有人编辑工作表2、3或4时运行脚本。如何设置此触发器?
实现这一点有多种方法,每种方法都有各自的优点。您有针对每个案例的特定设置吗?您是否为每种情况运行不同的函数?等
if
语句检查每张图纸的名称
if(name==“name 2”| | name==“name 3”| |……){/*通用代码*/…
开关(名称){case“name 2”:…
var name=[“表2名称”、“表3名称”…];if(names.indexOf(name){…
在所有情况下,您都希望从事件对象中获取编辑后的工作表的名称:
// My simple-trigger function that runs on edit:
function onEdit(eventObject) {
if (!eventObject) {
/* the function was run from the script editor */
return;
}
var editedSheetName = eventObject.range.getSheet().getName();
/* perform some sort of comparison to figure out if 'editedSheetName'
is one we want to work on, and if so, do so. */
...
您应该查看Javascript语言参考(例如Mozilla Developer Network上的参考)以熟悉执行流控制。
可以在Apps Script触发器留档中查看事件对象中可用的属性:https://developers.google.com/apps-script/guides/triggers/events
我有一个用于Google Sheets的“onEdit”脚本,但只希望它在一张工作表上工作: 如何更改脚本,使其仅在工作表中的一张工作表上工作?
我试图通过电子表格发送电子邮件。脚本从电子表格中的工作表中获取电子邮件和电子邮件正文。当此工作表是第一个工作表时,脚本工作正常。然而,出于我不想深入讨论的原因,我需要另一张表格作为第一张。我试过使用: var ss=电子表格应用程序。活跃起来。表(); var表=ss.getSheetByName('电子邮件'); 然而,当我这样做时,我得到了信息 TypeError:在对象工作表中找不到函数ge
我有一个谷歌电子表格,里面有多张表格,我想把每一张表格复制到一个新的电子表格中,并在一个特定的单元格中以文本命名新的电子表格。我很高兴运行脚本多次,所以我想让它复制活动表。 即。我所拥有的=称为“颜色”的电子表格——工作表1=“红色”,工作表2=“蓝色”,工作表3=“黄色”,等等。 我想要什么= 名为“红色”的电子表格。电子表格叫做"蓝色",电子表格叫做"黄色" 到目前为止,我有这个脚本,但它告诉
可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV
查看GoogleSheetsAPI,似乎很容易将行附加到现有的电子表格(这里有文档记录)。 我不知道如何做的是在包含多个工作表的电子表格中的特定工作表中追加一行。工作表似乎有自己的ID(这里记录了),但是追加操作调用了一个。附加到包含多个工作表的电子表格似乎总是附加到电子表格中当前的“第一个”工作表。 有人知道如何使用API/SDK请求将行附加到特定工作表中吗?
我的脚本在提交一些表单后在电子表格上添加新的表单。此表用作排行榜。但要查看它,我必须单击新创建的选项卡。有什么办法可以从脚本中完成吗? 这张图片是创建新工作表后的屏幕截图(第1周第2课)。 P、 我发现我必须重新表述这个问题。问题是,我想从另一个电子表格(此电子表格有onSubmit触发器,并在其他打开的电子表格(排行榜)上创建和放置信息)中执行此操作。我检查setActiveSheet(工作表)