有人能帮我解决这个问题吗
附件是我正在尝试做的示例表:
我正在尝试移动数据选择中包含“PO”的行。(参见换档功能)
它应该改变这一点:
为此:
我已经写了一个脚本,但它不工作,我没有收到错误消息
我有一种感觉,这是因为我试图“+1”我的数组来抵消我的值。请帮忙
以下是我当前的脚本:
function shift() {
try{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var as = ss.getActiveSh
我喜欢使用脚本读取Google sheet中的一系列数据,修改数据,然后写回
var range = sheet.getDataRange();
var values = range.getValues();
// modify the values
range.setValues(values);
到目前为止还不错,但我的工作表还包含公式,这些公式现在已替换为固定值,因此修改了我的代码:
var range = sheet.getDataRange();
var values = range
我有一个包含两张表的表单,一张是命名表单,另一张是数据。数据表上的信息通常通过表单表输入,点击表单表上的按钮将数据发送到数据表的底部一行
我试图弄清楚,当D列中同一行的单元格接收到“CLEANED”一词时,如何向数据表E列中的相应单元格添加时间戳,无论是作为表单提交还是作为数据表上的直接手动输入
这段代码当前添加了时间戳,但仅当我直接在数据表上更改D列中的值时(不是通过表单表添加值时),它才会为添加的任何值添加时间戳
var ColumnToCheck = 4;
var DateTimeLoca
我试图识别当前用户的姓名,以便记录谁编辑了以下内容:
r.setComment("Edit at " + (new Date()) + " by " + Session.getActiveUser().getEmail());
但它不起作用-用户名是一个空字符串。
我哪里出错了?我想您将这段代码设置为在onEdit函数(或on-edit触发器)中执行
如果您使用的是消费者帐户,Session.getActiveUser().getEmail()将返回空白。只有当脚本作者和用户都在同一谷歌应
我有一张表格,我们在谷歌表格中跟踪部门指标。当一个指标发生变化时,我试图将其发送到电子邮件。我正在使用counta(范围P2)来监控是否有新的指标出现,如果范围内的值发生变化,我想触发一封电子邮件
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var value = ss.getSheetByName("EmailServices").getRange("P2").getValue().toStri
是否有一种简单的方法来捕获doPost(e)请求的IP,并将其与POST的传入值一起存储,以跟踪请求的来源
它似乎无法通过e.parameter获得
我找不到e的其他属性或方法的完整列表,目前无法在doGet或doPost中获取传入请求的IP地址或用户代理。请在我们的日志中记录增强请求以及您的用例的详细信息 好的建议,让我们一起去做。以下是问题URL:Apr 1,2013 09:22AM-状态:不会修复(不可行)-感谢您的请求。不幸的是,我们目前没有任何支持此功能的计划。如果将来有足够的需求,我
通过TableCapture扩展,我将一个html表格从网页复制到了google电子表格中。
在该表中,有一列以小数表示的ex:
12.4
我想把这个换成
12:40:00
如果我通常将替换为:,那么它将替换为
12:04:00
您应该尝试使用格式=>数字=>时间
您应该通过工具=>脚本编辑器打开一个新脚本,看看哪一个是删除行的教程,您需要调整它以更改行值。你会找到所有需要的文件
您的代码可能如下所示:
for each row{
var string = new array(2)
我有这样的价值观
a
b
c
我想用
d
e
f
结果是
d
e
f
很简单。除非e为空怎么办
d
f
如果它像这样是空的,我希望它保留旧值
d
b
f
如果isetValues()超出范围,它将不会保留空白。有没有办法做到这一点而不必在整个范围内循环,并使用if语句分别设置每个范围?这听起来像是谷歌问题跟踪器上已经记录的增强请求-
请在那里跟踪此请求。除此之外,我不知道有什么方法不必循环。您不需要提出增强请求。只需读取原始数据,将其与新数组合并到内存中,然后执行单个设置值。干杯。最
有什么方法可以从桌面选择和上传文件吗?我想创建一个简单的用户界面,允许我从桌面选择一个文件,将其上传到驱动器并获取其链接。我找到了,但这不是我想要的(我需要从桌面选择文件,而不是从GDrive) 您可以使用HtmlService执行此操作。有一个例子
如果您更喜欢UiService,请查看。文档页面上提供了一个示例
我的日期存储如下:
existingDate = Wed Apr 30 2014 00:00:00 GMT+0100 (BST)
当我使用Utilities.formatDate格式化日期时,日期将更改为前一天
var formattedDate = Utilities.formatDate(new Date(existingDate), "GMT", "dd/MM/yyyy");
然后将格式化日期设置为2014年4月29日和非2014年4月30日
是否有其他人见过这种行为。实用程序。for
我在一个公立学区工作,我编写了一个脚本,从谷歌表单回复表中获取数据,并根据信息所涉及的学校将其过滤到单独的表单中。使用位于的教程。修改后的脚本有1300行长(包括一些解释),直到最近一直运行顺利
脚本现在返回许多错误。最常见的错误是:
服务超时:电子表格(第40行,文件“Transfer/SortID/Copy/Sort”)
服务错误:电子表格(第40行,文件“Transfer/SortID/Copy/Sort”)
错误中标记的行为
“headersRange.setValues([column
基本上,我有一些具有以下设置的图纸:
在工作表的顶部有几个冻结的标题行,在许多数据行的下面都有A列中的日期。下面的函数允许我在任何工作表上跳转到“今天”(如果没有今天的数据,从技术上讲是未来最接近的一天)
函数goToToday(){
var workbook=SpreadsheetApp.getActiveSpreadsheet()
var currentSheet=workbook.getActiveSheet().getName();
如果(当前工作表!=“计算”){
工作簿.getShe
我可以创建一个桌面图标或浏览器书签,让我查看所有脚本吗?(三个都是!)
大约有四分之一的应用程序失去了处理Gmail的权限。这会给我带来即时压力,抑制我查找和编辑脚本的能力
最终,我找到了进入GoogleDrive的途径,找到了脚本,并对其进行了编辑。运行它会导致缺乏权威,这很容易解决。所有三个脚本都需要相同的修复
因此,我想要一些快捷方式,可以直接将我带到所有脚本的视图。您可以从url保存驱动器搜索:
这将列出驱动器上的所有独立脚本。如前所述,绑定脚本将不会显示,目前我认为这是不可能的您只能
我真的很困惑,因为这是工作较早,我不知道为什么它是打破了现在。我正试图解析CSV文件。我使用以下代码访问它们:
var file = DriveApp.getFileById(fileID);
var csv = file.getBlob().getDataAsString();
var data = Utilities.parseCsv(csv);
它在第三条线上崩溃了。调试时,我看到一切正常文件是一个对象,csv是一个字符串,根据预览,我认为csv的格式看起来是正确的('header1,h
我只是在做一个电子表格,根据不同的条件进行数据验证(依赖数据验证)。我们刚刚创建并更新了脚本。但是,我无法使它在不同的选项卡上工作(为每个选项卡工作的脚本)。现在我已经为三个不同的选项卡更新了脚本,但是,我的脚本只适用于我以“Arvind”的名义创建的最后一个选项卡。你能帮我在应用程序中使用相同的脚本,为不同名称的不同选项卡制作工作表吗?复制(授权)脚本如下,以供参考:
函数onEdit(e){
var sh=e.source.getActiveSheet(),
所有值,列表,
/*“易于更
这是我的第一个谷歌应用程序脚本,最初的计划是做一些更复杂的事情,但我在一开始就陷入了困境
现在,我只想记录文件夹的创建日期,但我不能
当我按下ctr+enter键时,在日志窗口中看不到任何内容
为什么会这样?我不想在这里建造火箭
这是我的密码:
fetchFiles();
function fetchFiles() {
var folder = DriveApp.getFoldersByName("Aff Comm");
Logger.log(folder.next().ge
我的gmail邮件正文中的字符串似乎不起作用。我得到了这个错误:
但是当我为html使用静态变量时。我根本没有任何错误(我正在接收最后一条成功消息“success but not found…”,所以这仍然可以…,这就是我想要的,但我不想使用静态变量)
这是
请参阅[我的演示视频][2]
[1]: https://pastebin.com/acBHN63S
[2]: https://www.useloom.com/share/08525a017c574698a88f951cf04d781
我试图从工作表中导入数据,并在目标上导入“设置值”,每9行增加一行间隔。
我正在尝试此脚本(如下),但在导入时无法正常工作。书写正确
我该怎么做?谢谢你的关注。
示例如下:
函数abc()
{
var sourceSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“数据”);
var startData=3;
var endData=1000;
while(开始数据
我有自动的电子邮件提醒,它会进入我收件箱中的标签(通过回复到),也会发送给用户(通过电子邮件的收件人:部分)
我正在寻找添加到我的脚本中,以提取电子邮件正文中的信息。最后,我想拉邮件的收件人(在收件人部分),并把它放在谷歌表格的B栏。如有任何见解,将不胜感激
脚本:
// Modified from http://pipetree.com/qmacro/blog/2011/10/automated-email-to-task-mechanism-with-google-apps-script/
我发现了这个非常棒的脚本,它同步了btw google cal和google电子表格。双向同步。而且很有效!->
现在,我无法将日历的地址放入名为Data的工作表中。在B1单元。脚本应该从那里提取地址,这样我就不需要在脚本中更改它
有人能想出办法吗?
更改将涉及按数据定义calendarId!B1
脚本应该只在工作表上运行
您可以在此处查看示例文档:
我在工作表脚本上复制了一份脚本,日历id在第8行声明
var calendarId = 'bora-bora.dk_is0cr9ibe4thrs4
我正试图让下面的函数在绑定到Google工作表的Google脚本中运行。目前,我正在使用虚拟数据进行测试,而不是从工作表中提取数据。下面的函数在Chrome、Firefox和Node中运行,但我得到一个“语法错误”,无法保存在Google脚本中
function tasksToCommands(tasks) {
var commands = tasks.map((task) => {
return {
"type": "item_add",
"temp_
我的一个脚本使用SpreadsheetApp.openById(ID)从电子表格中获取数据。脚本已被授予打开文件的权限,并且脚本用户对文件具有写访问权限。但是,有时脚本会返回以下错误:
You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets at [unknown function](Code:11)
所以我尝试使用外部源(Zapier)将值输入到我的电子表格中。然后将这些输入值“转换(公式化)”到我的电子表格中,以适合它们要对齐的单元格坐标
我将电子表格设置为运行“onEdit”,当这些传入值到达时,应该会导致电子表格的其余部分发生更改,但该函数没有运行
然而,如果我要“手动”编辑电子表格,onEdit函数可以完美地运行
那么,当外部源提供其输入值时,为什么电子表格不运行该函数呢
更新:
所以我发现,如果我手动授权一个“onChange”可安装触发器,它就会工作。但是如果我创建了同一份电子表
不确定是否可以这样做,甚至从哪里开始,但我目前遇到的问题是,我们在一个名为“策略”的文件夹中创建文件,然后创建一个可查看的可共享链接。然后,我们将此链接复制到单独的目录文档中,以便快速打开这些文件。这些链接在目录中分为5组标题
我在想,如果在政策标题文档中,我把它放在什么类别下,脚本是否可以抓住它,使用文件名并自动将其粘贴到目录文档中(从文档第3页开始)。这样,列表将自动保持不变,断开的文件链接将成为过去
提前谢谢
自动将其粘贴到从文档第3页开始的目录文档中
答复:
不,是目录部分使得这不可能
我有下面的代码,可以帮助我从sheet1中获取数据并将其粘贴到Sheet2中
function HubArchive()
{
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var sourceData = sourceSheet.getDataRange().getValues();
sourceData.splice(1,0); // Remove header
我正在从电子表格中提取一个blob并创建一个pdf。非常简单的东西,除了我似乎不会像谷歌的技术文档所暗示的那样在创建文件时返回一个文件对象??
var theBlob=newGSheet.getBlob().getAs('application/pdf').setName(“myNewPDF.pdf”)
var newPDF=folderX.createFile(theBlob)
根据,newPDF应该是一个文件对象,这将使我能够执行newPDF.getId()之类的操作,以便以后可以引用它。相
我有一个主文件夹文件夹1
文件夹1中有多个子文件夹,其中包含文件。我想更改所有共享权限访问的子文件夹文件。任何具有链接的人都不需要登录。目前,我有以下代码,但它只在没有子文件夹的情况下工作
function myFunction() {
var folderId = "Folder ID";
var files = DriveApp.getFolderById(folderId).getFiles();
var result = [];
w
我想获得访问Looker登录页面的访问令牌。运行此代码时出现超时错误:
function getToken() {
var authPayload = {
"client_id" : getProperty('authClientId'),
"client_secret" : getProperty('authClientSecret')
};
Logger.log(authPayload);
var authOptions = {
"method" : "post
所以我有一个简单的问题,我似乎找不到一个简单的解决办法。基本上,我想做的是有一个公式,可以找到特定范围(A1:Z1000)内出现的特定值(例如“ADC”)的第一个实例,并为该单元格在该表中的位置提供A1符号。我尝试了索引和匹配,但这是与列/行相关的、Regex、Find等,但这些都不起作用。我只想让它逐个单元格,并报告具有该值第一个实例的单元格的绝对位置(在表中)。任何帮助都将不胜感激。谢谢你谢谢你,库珀!如果可能的话,有没有办法用公式而不是函数来实现这一点?谢谢Cooper!如果可能的话,有没
问题:将“asMultipleChoiceItem()”替换为“asCheckboxItem”时,是什么导致了此脚本中的错误?有没有一个明显的方法来纠正它
Short version:我正在尝试实现解决方案()的复选框版本,方法是将“item.asMultipleChoiceItem()”替换为“item.asCheckboxItem()”;但是,我在调试“项类型的无效转换:多选”时遇到了一个错误()。我很难通过故障排除来识别/理解错误,从而找出如何纠正错误
我的代码:
function Dep
我正在阅读谷歌工作表文件并合并到谷歌文档
模板有一个表格,替换文本的第一行有一个表格。
下一行没有表结构,我想追加该表,直到没有更多记录为止
说明
要合并的数据源(monthly-q)工作表定义为将字段复制到google文档
用作模板
合并文档
概述是模板定义的字段,用于从“转诊医生数据”获取新的google表单。
月度q工作表是最终合并文档的格式。
我想得到所有的细节交易显示在谷歌文档组的转诊医生。所有必需的计算和查询都已完成
问题:
可以合并一个数据,但不能合并多行数据
我无法在go
如果B列包含与CopySheet B列中的另一个值匹配的值,则我尝试更新或替换PasteSheet中某行的内容。复制CopySheet中匹配的行以更新PasteSheet中的行。列值为数字,即4.0
这是我一直在编写的代码,但什么都没有发生
function timestamp(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var copySheet = ss.getSheetByName("IMPORT");
var p
我希望能够在不影响appscript函数的情况下在数据中插入列或重新排列列位置
我没有按数字引用列位置,而是考虑按标题值引用它们(我不会更改名称)
我做了一个小函数,这将使编写代码变得容易
函数的输出将存储在工作表中,然后我将复制粘贴到我的应用程序脚本函数中
我的方法行吗,还是有更好的方法
function get_headers(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheets=ss.getSheets();
我有一个名为“IMS导入”的工作表,我正试图通过一个按钮触发的谷歌应用程序脚本将A3:E范围导出到CSV文件。要导出的范围的长度每周都在变化,因此我只想捕获最后填充的行。我有下面的脚本,但我得到一个谷歌错误“403。这是一个错误。很抱歉,您没有访问此页面的权限。这是我们所知道的全部内容。”
函数onOpen(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var csvMenuEntries=[{name:“下载IMS导入文件”,functio
我在谷歌应用程序脚本中为我的谷歌表单电子表格做一些尝试。它基本上只是复制一张工作表中的单元格,转到另一张工作表,粘贴它,更新一组数据,然后复制这些值,然后返回到原始工作表并转置这些结果
所以我让它作为一个宏来工作,但我想让它在一个循环中运行,这样它就填充了工作表上的所有行。以下是我的代码副本:
function relcoprow() {
var spreadsheet = SpreadsheetApp.getActive();
var startloc = spreadsheet.getCur
出于某种原因,在我的日历中创建了一系列不被视为重复事件的事件。在接下来的3年里,我们每周讨论2次活动,我希望谷歌应用程序脚本能够从我的日历中删除这些活动
事件有一个单一的、特定的名称,由我创建。我希望将来删除所有具有该特定名称且由我创建的事件
由于我对脚本完全不熟悉,我尝试了下面的示例代码。不幸的是,它在我设置的测试日历(test)中没有做任何事情。Google Apps脚本中的调试选项不会生成任何错误或消息。运行脚本也不会生成任何日志
那么,谁能帮助指出下面代码的错误,以及如何根据事件标题和该
正如我们所知,谷歌对表单中的下拉列表设置了一个真正不合理的限制。我有一个下拉列表,应该有1500多个选项。为了克服这个问题,我考虑了一个非常混乱的方法来创建多个表单。这些表单将是相同的,除了我将在表单之间划分的这个特定下拉列表。下拉列表将包含一个client=潜在客户的列表,因此我考虑根据他们姓氏的第一个字母将其拆分。例如,如何对查询进行词组化以检索以A-F字母开头的值
有没有一种方法可以让一个动态的单一查询在2-3个不同的列之间分割,这样我的下拉列表就可以很容易地从这些列中填充?
或者,更好的
我正在迭代一个行大小可变的表。某些行导致表格在幻灯片外流动。为了解决这个问题,我想我应该设置一个最大的表格大小,在设置文本之后,把所有的行大小加起来,如果太大,就创建一个新的幻灯片
但是,每行的高度始终相同。我的假设是,由于它尚未在UI中呈现,因此所有行的大小保持不变。我原以为刷新幻灯片就可以了,但事实并非如此。我不熟悉应用程序脚本(1天)
另外,我还尝试使用
Table.getHeight()
Table.getInherentHeight()
方法,但由于我不理解的原因,它们继续返回nul
我仍在尝试使用脚本,所以如果这是基本的,我很抱歉
我有一个汇总电子表格,可以从数百个其他文档中提取值。这使用了(太多)导入公式,但其中许多现在是#REF或#Loading
我正在尝试创建一个自定义公式,它将模拟importrange函数并返回值。
我原以为最难的部分是在另一个文档更新时更新公式,但我一开始就失败了
这是我的密码
function GetRngValue(ShtURL, GetRng) {
// find id from shtURL? - check if the workboo
我们有这个谷歌表单,详细信息将通过定制的g应用脚本添加到谷歌表单中。当详细信息被添加到谷歌工作表日志后,它应该发送电子邮件。如果我手动运行sendmail(),它会工作,但当我在onFormSubmit()中调用它时,它就不工作了。可能出了什么问题
function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var templateLink = sheet.getSheetByName(&qu
这是我第一次使用BigQuery
我有一个谷歌工作表文件,每天运行,并插入一些数据到我的表自动化
在这一刻,我有约120k行在表中
模式非常简单:
Field name | Type
Date | DATE
Country | STRING
Revenue | FLOAT
我想把过去7天的收入加起来
在BigQuery控制台中运行此查询时,我得到了正确的值:
SELECT SUM(Revenue) AS sum FROM my_dataset.my_table WHER
有没有办法从记录器输出中删除时间?我知道您可以使用replace功能,但这在将时间缩短到第二秒时效率低下。我只想保留日志中的文字
使用replace的输出示例:
01:23:23:文本
不带替换功能的输出示例:
10月20日星期二01:23:23美国东部时间2020年信息:文本
您可以将数据写入电子表格,而不是记录数据
在这种情况下,只会写入文本本身,而不会写入日期戳
样本:
myValues= [1,2,3];
var sheet = SpreadsheetApp.openById(id
我在“Google drive”中有一个电子表格,其中包含以下信息:
我需要为每一行添加一个按钮(假设我们有更多数据),如果我单击它,将弹出一个html,其中包含来自该电子表格和特定行的信息
目前,我已经在Apps脚本中创建了以下创建电子邮件草稿的gs文件。但是,我想创建和查看新的电子邮件,以便在邮件中添加更多信息,然后发送
/**
* Sends emails with data from the current spreadsheet.
*/
function sendEmails()
我试图创建一个简单的切换按钮,每次单击该按钮时,该按钮将继续隐藏从第5列开始的下一列
e、 g
单击按钮隐藏第6/F列
再次单击按钮以隐藏第7/G列
再次单击按钮以隐藏列8/H
等
我想创建一个按钮,它也可以做相反的操作
e、 g
单击按钮取消隐藏6/F列
再次单击按钮以取消隐藏7/G
等
我有下面的代码,我需要添加什么以便在每次单击/运行函数时继续显示/隐藏下一列
function hideCol()
{
var sheet = SpreadsheetApp.getActive().get
我有一个竞争对手反向链接审计谷歌表。在以前,这是完美的工作。上一天我试着再次使用我的床单,但这一次,它不起作用。它显示了信息
例外:数据验证规则的项数超过了的限制
500.改用“范围列表”标准
这张纸有四个步骤
使用应用程序脚本合并各种数据,效果非常好
使用各种筛选数据筛选合并数据
创建数据验证,但此步骤不起作用
取决于第三步。所以这也不管用
我试图解决这个问题,但我想不出来
以下是我的工作表URL:
此外,代码太长,无法共享
第一个URL是主代码集:
第二个URL是第一个代码的帮助器:
这里有
我想知道是否有办法将我自己的算术函数添加到Google工作表中。我希望它能像这样工作:
当我在单元格中键入=myFunc(B2,B3)时(例如),它将在单元格中填充返回值myFunc。我想我可以这样做的一种方法是检查我是否在电子表格中的任何地方键入了该组合,然后使用GoogleApps脚本将其替换为所需的输出,但这似乎效率低下
有没有其他方法可以实现这一点,比如使用插件
谢谢您的帮助。您正在寻找的。工具>脚本编辑器(绑定脚本文件)中的任何有效JavaScript函数都可以在该电子表格的任何单元格
我将要在Google sheet中设计一个结构。如何使用应用程序脚本动态调整行宽和列宽
注:要调整列或行的宽度,我的意思是给宽度一些像素或英寸大小。我不是说自动调整大小以适应单元格中的内容。我相信您的目标如下
您希望使用Google Apps脚本动态调整已编辑行和列的大小
在这种情况下,使用简单的OnEdit触发器运行脚本怎么样?这样,当您将值放入单元格时,脚本将自动运行。可以使用autoresizezerows和autoResizeColumns实现行和列的自动调整大小。示例脚本如下所示
我有一个GoogleApps脚本,它可以生成一个电子表格,生成一组表单,并将这些表单链接到该电子表格。接下来我要做的是修补电子表格、重新排列表格、更改表格名称等。我的问题是,在整个脚本完成之前,我的电子表格似乎不会更新以确认表单中的新表格
这是我的密码:
function mwe() {
var ss = SpreadsheetApp.create("Spreadsheet");
var form1 = FormApp.create("Form 1"
问题:无法使用Google脚本更新两个或多个切片器的范围
信息:工作表包含两个切片器
代码:
怎么了?如果我只在工作表和代码中使用一个切片器,代码就可以工作
提前非常感谢您的帮助 我认为你无法编辑它们的范围。
但您可能会删除它们,然后使用新的系列重新创建它们:
function test(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tracking');
var
我想在谷歌应用程序脚本中构建一个应用程序,以识别来自谷歌表单的类似响应
为了测量两个文本数据的相似性,我使用了,下面是测试它的代码:
function myFunction() {
const spacy = require('spacy');
const nlp = spacy.load('en_core_web_sm');
apples, and_, oranges = nlp('apple and oranges');
Logger.log(apples)