这个脚本似乎运行得非常好。这个问题更多地是针对(初学者)是如何写的。
我一直在编写一个脚本,在将它分解成多个函数之后,我很难将变量从第一个函数传递到下一个函数。在阅读了一下之后,我发现我不一定需要包含"var = ",尽管我不能百分之百地确定差异是什么。我设法得到了“变量”(它们仍然被认为是变量吗?)传递到下面的函数,但我只想确保我所做的工作是有效的/可接受的。
function onEdit(e){
/* I switched these from "var = " because they weren't passing
down to t
我有谷歌的脚本,我收集在网上,并在这里得到一些帮助。不,我有两个onEdit在冲突中。我通过为onEdit2创建脚本触发器来克服这一点。这很管用,但我不认为这是最好的解决办法。你能帮我把这两个分开的onEdit和if函数合并成一个吗?
//Dependent Dropdown list
function onEdit(e){ // Function that runs when we edit a value in the table.
masterSelector(master1,master2,master3,master4);
var activeCell = e.range;
当在单元格1中输入"ok“(第1列)时,我试图将一行从工作表"Name1”复制到工作表"Name2“,但无法修复标题中的错误(无法从未定义的位置调用方法"getActiveSheet”)。我试过所有这些注释行,但没有运气,我正在编辑单元格,并在那个单元格中输入"ok“,但不工作。
function onEdit2(e) {
//var ss = SpreadsheetApp.getActiveSpreadsheet();
var ss = e.source;
//var s = SpreadsheetApp.openB
我在windows窗体应用程序C#,uwp应用程序中工作过。就这些而言,调试非常简单,我在需要暂停执行的地方放置了一个断点,以查看变量的当前值。我通过鼠标悬停或使用autos来检查这些值。但我对Sheets应用程序脚本是个新手,并试图找到如何调试。但是没能拿到。这里是按onEdit事件函数。
function onEdit(e) {
var range = e.range;
// range.setNote('Last modified: ' + new Date());
// range.setBackground("green
我正在尝试用google sheets脚本编辑器创建一个自定义的onEdit函数。我想知道是否可以添加一个输入参数,比如onEdit(e,row),其中row是我用来指定目标单元格的整数。下面是我的noob代码:
function onEdit(e,row) {
// writes the current date to the cell in column B on the same row when a cell in a specific column is edited
var sheetNameToWatch = "M2";
var columnNumberTo
我添加了一个链接到我正在做的google工作表.
我添加了这段代码,它创建了模板表的一个重复选项卡,并在客户信息表上输入姓氏和名字时将其重命名(见下面的脚本)。
function onEdit(e){
// Global constants, ensure edit occured on the right sheet/range
const sh = SpreadsheetApp.getActive();
const ss = sh.getActiveSheet();
if (ss.getName() != "Client information" ||
我有一个包含多个工作表的工作簿,并且我已经在其中两个工作表上运行了一些简单的脚本(这些工作表基本上是彼此的副本)。 一次脚本根据在其中一个单元格中输入的值创建一个下拉列表,而第二个脚本根据编辑新的下拉列表的时间添加一个时间戳。 最初,我在第一个工作表上运行了两个onEdit函数。然后,我创建了这些函数的副本,做了一些小的修改,以便在另一个工作表(相同的工作簿)上运行。 考虑到我真的不知道如何为每个工作表创建一个单独的脚本,我现在有一个包含4个类似onEdit函数的脚本。 因为我完全是个新手,所以我相信有更好、更有效的方法来写这段代码。我将非常感谢您在优化这方面的帮助。 function on
每当我在第一栏中输入一个条目时,我都会尝试在我的google页面上得到时间戳,它应该给我第四列的日期和时间戳。然而,我不知道我做错了什么,所有的教程都有一年的历史,Google已经从google的"tools“菜单中删除了编辑脚本功能,所以我不知道如何正确地连接到它。
下面是代码:
function onEdit(e) {
var row = e.range.getRow();
var col = e.range.getColoumn();
if(col===1 && row>1 && e.source.getActiveSheet.
我需要帮助,我正在使用onEdit函数来实现基于工作表的数据验证。当我单独使用它的时候,它很好用。我可以在Colonne 4中选择一个类型,然后在Colonne 5中出现一个列表。然后,我尝试根据colonne 5中的选择,对colonne 7重复这个选项。我知道一个onedit函数只能在一个脚本中使用,所以我尝试在一个新项目中执行第二个函数,但是它没有工作。因此,我尝试执行onEdit1和onEdit2,并在单个onEdit(e)函数中调用它们,但也没有成功。我希望能在这方面提供任何帮助。提前感谢!
///////////////////Two data validation based o
我试图使onEdit函数只响应特定的范围。我的onEdit函数如下:
function onEdit(e){
var range = e.range;
var sheetName = e.source.getActiveSheet().getSheetName();
if (//trigger only when the cells from column A:H is edited
sheetName == "Email list" &&
range.rowStart >= 2 &&
range.co
我有一个代码示例来突出显示我创建的对象和触发器事件对象之间的区别。在触发器事件对象中,我可以使用术语e.range以及标准的range类函数,它工作得很好。但是,我并不知道如何创建psuedo事件对象,以便范围项不仅仅是属性的名称。
function onEdit(e) {
console.log(JSON.stringify(e));
var sh=e.range.getSheet();//e.range is a real range object
if(sh.getName()=='Sheet2' && e.ran
我在谷歌电子表格上找到了两个onEdit()函数。但似乎一次只起一种功能。
第一个函数是为所有行着色的脚本,第二个是基于列编辑在2个单元格上添加日期的日期函数。
这是剧本。
function colorAll()
{
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 4;
var endRow = sheet.getLastRow();
for (var r = startRow; r <= endRow; r++) {
colorRow(r);
}
}
SpreadsheetApp.fl
当我的电子表格发生变化时,我试图调用: Google脚本中的SpreadsheetApp.enableBigQueryExecution()。
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.enableBigQueryExecution();
sheet.refreshAllDataSources();
}
但是,我一直收到这样的错误:
Exception: You do not have permission to call SpreadsheetA
全
如果你把这两个人放在一起,他们没有工作什么是正确的代码一起工作注意,第一个安排自动,第二个是设定日期,如果你只把一个工作,但如果你添加其他所有停止工作
function onEdit(event){
var sheet = event.source.getActiveSheet();
var editedCell = sheet.getActiveCell();
var columnToSortBy = 13;
var tableRange = "A2:Y";
if(editedCell.getColumn() == columnToSortBy){
我目前正试图在谷歌工作表中设置一个简单的计算,只有当该值不等于以前的值时才会添加。我该怎么做呢?我所需要的就是从输入中获取之前的值。我在JavaScript工作已经有一段时间了,所以我可能会忘记像这样简单的事情。
我试着研究了google API,并寻找类似的解决方案来寻求帮助。我可能很愚蠢,或者错过了一些简单的东西,但是有谁知道吗?
///Call onEdit that takes in the value of e
function onEdit(e)
{
//Get the input value and its previous value
var input = e;
我有两个密码。他们每个给我三个下拉列表,取决于彼此,并为不同的床单工作。每个代码都使用其单独的数据列表。
我如何组合这两个脚本,每个脚本工作在两个不同的页面?(总共有4页,有三个下拉列表)
第一项职能:
var mainWsName1 = "PERSONELextra";
var mainWsName2 = "ISKUR";
var optionsWsName = "Lists";
var firstLevelColumn = 1
我设置了一个工作函数,它从下拉菜单中的选择项中搜索另一个选项卡中的匹配项,然后从匹配项下的指定网格复制背景/字体颜色,并将其粘贴到主选项卡中的网格上。脚本如下: function cellColours() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheetRanges = ss.getSheets()[2]
var sheetCalculator = ss.getSheets()[0]
var dropdownMenu = sheetCalculator.getRange("
我为google表格编写的代码可以很好地计算彩色单元格,但我需要能够在背景颜色改变时立即刷新结果,而不是剪切和粘贴来强制显示结果。
我看到了这个:的问题是,作为一个新手,我不知道如何使用计数彩色细胞脚本,更不用说强制更新/刷新的脚本了。
因此,我正在寻找一个与我已经拥有的代码强制刷新。
下面是我使用的代码,没有任何问题:
function countColoredCells(countRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getAc
我在创建一个脚本来自动化GSheet上的时间戳时遇到了一些麻烦。我有2列- AD和AE,我希望它有日期时间戳时,列L和AA被更新。我已经尝试了以下脚本,但似乎不起作用。 function onEdit(e) {
addTimestamp(e);
}
function addTimestamp(e){
var startRow = 3;
var targetColumn = 12;
var targetColumn2 = 27;
var ws = "Brand List";
var row = e.range.getRow();
var c
为什么我的函数不能从onEdit函数中识别“e”呢?你有什么主意吗?谢谢,如果你能帮我的话,
function onEdit(e){
var feuille = e.source;
if(SpreadsheetApp.getActiveRange().getColumn()==7){ //the 7th column is the "+/-" column
var i = e.source.getActiveRange().getRow(); //i is the line of the change
var k = 408+i; //
我有一个函数,它打开一个边栏,其中包含一个信息和音乐。这个函数工作得很好,但是我希望函数showSidebar在编辑某些单元格时运行(在“Sheet2”上是C2:E10)。我已经尝试过以下代码,但在电子表格中的任何地方进行编辑时,该代码仍将运行该函数。
function onEdit(showSidebar){
var range =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2").getRange(2, 3, 10, 1)
}
以下是完整的代码页:
function onEdit(e){
我试图找出哪一个触发器用来发送电子邮件(从模板)每一行:
function sendConfirmationEmail(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = e.range;
var row = range.getRow();
var dataRange = sheet.getRange(row, 1, 1, 5).getValues();
// Test
console.log('Data: ' + e + 'range ' + dataRa
我有下面的Google Apps脚本代码,它是由对一个具有下拉数据验证(从列表中选择)的单元格的编辑触发的。有时,它会向目标表中添加两个重复的行,而不是所需的单行。我已经在不同的位置添加了日志记录,以查看是否可以检测到某段代码运行两次的时间/位置/原因。日志没有显示脚本的任何部分意外运行。我还添加了锁定功能。它对这个问题没有帮助,尽管它确实使脚本以更可靠的方式运行。我真的很想弄清楚这件事,尽管这在这一点上真的只是一个麻烦。如果您需要任何其他信息,请告诉我: function onEdit(e) {
Logger.log('Running onEdit');
var
目标是每当创建新版本时,自动触发器函数将获取电子表格的最新历史版本日期,并将其设置为目标单元格。
我使用onEdit函数来触发它。
代码如下:
function listRevisions(fileId) {
var revisions = Drive.Revisions.list(fileId)
if (revisions.items && revisions.items.length > 0) {
var latestVersion = revisions.items[revisions.items.length - 1]
var dat
在这段代码中遇到了一些问题。它的意思是自动输入两个特定列中的单元格更新到该单元格右侧的时间。它只处理一个在编辑时触发的单元格的脚本,而不是当我将它们放入一个函数中时,以便我可以同时运行多个单元格。
function onEdit(e){
myFunction1();
myFunction2();
}
function myFunction1()
{
var sheet = e.source.getActiveSheet();
if (sheet.getName() == "Dispatch Log")
{
var actRng = sheet.getAc
我对谷歌脚本非常陌生,试图解决业务流程中的关键问题。通过搜索,给出了以下脚本,用于对工作表模板进行多层次数据验证。
如何编辑此脚本以运行除特定工作表以外的所有工作表(例如。Sheet1,第2页)
我已经找到了将工作表排除在下面代码之外的选项,但不确定如何使用它以及在何处输入它。
var excludes = [];
// if (excludes.indexOf(s.getName()) != -1) return;
先谢谢你
var mainwsMaster = "Template";
var MenuWSname = "Master Menu"
var
我已经设置了一个功能,可以在发生任何更改时向我的电子邮件发送电子邮件,这样当维护请求添加到工作表中时,我就可以收到通知。我想设置它,这样我的触发器只会在某个列(在本例中是A)或行发生变化时发生-因为我由于某种原因没有收到表单提交时的通知。
这是我的代码-
function onEdit(e){
var range = e.range; if (range.getColumn() === A && range.getRow() === observedCellRow) {
sendEmail(); MailApp.sendEmail('connor@singapm.
我有一些问题,希望大家能回答我。在下面的函数中,我不能理解事件'e‘。“e”是什么?我们如何调用函数,或者函数在哪里被调用?请给我举个例子!
function my_on_edit(e) {
var s = findSheetById_(e.gridId);
var r = e.range;
s.getRange(r.rowStart, r.columnEnd+1).setValue( s.getName() );
}
function findSheetById_(id) {
var sheets = SpreadsheetApp.getActive().getSh
我见过很多类似的问题,但我还是很困惑。
我希望onEdit脚本只在特定的选项卡上工作。我试过几件事,但没有一件是正确的。
我的工作表上的标签叫做“网络涂鸦”。我想在工作表上的其他选项卡上运行这个脚本,但是列的顺序不同。我知道如何编辑脚本来编辑不同的列,但我不知道如何使它只在指定的选项卡上工作。
这是我正在使用的脚本。
function onEdit(e) {
if (!e) {
throw new Error(
);
}
indirectTimestamp_(e);
}
/**
* Inserts a timestamp in column T when col
我已经写了这个谷歌应用程序脚本。目的:每次我编辑“位置更新”脚本应该发送一个电子邮件到“经纪人电子邮件”。:
function onEdit(e) {
var activateSheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(activateSheet.getSheetByName('Responses'));
var sheet = SpreadsheetApp.getActiveSheet();
var range = e.range;
var row
我有一张我正在做的谷歌单子。
在第一个选项卡上更新column B时,我有一个用时间戳填充column A的脚本。但是,我需要在第二个选项卡上做同样的操作,但是我无法让它在那里工作。我需要改变什么?
我使用的当前脚本是:
function onEdit(e) {
var sheetToWatch= 'Wrong Grading',
columnToWatch = 1,
columnToStamp = 2; //change all of these to your needs
if (e.range.co
这就是我一直在研究的。我是一名篮球教练,有一个电子表格可以从IFTTT.com上获取我所有球员的推文(它基本上是接受推特列表的RSS提要,当它被更新时,它会更新电子表格)。
我一直在编写代码,基本上是说:“如果玩家在推特上发了一个不恰当的词,立即给我发电子邮件。”
我已经知道了,如果我输入一个不恰当的单词,它会使手机变红,然后发电子邮件给我。但是,在IFTTT用tweet自动更新电子表格之后,我还没有想出如何让代码发送给我。
这是到目前为止我的代码。现在,我只有一个“触发”字,那就是“玩家”,只是为了让电子表格正常工作。下面是代码:
function onEdit(e) {
var s