相关疑难解决方法(0)

我的Google Apps脚本如何由其他人共享?

我有一个适用于我的Google Apps脚本.与表共享的其他人试图使用它获取消息:

您无权执行该操作.请让此项目的所有者授予您访问权限.

该脚本用于使用新的数据行更新现有工作表.它是使用添加到UI的菜单项触发的,并执行以下操作:

  • 在GDrive文件夹中查找.xlsx文件(此文件由Web服务导出并由我们手动放入GDrive文件夹,我们无法控制文件的内容或其格式)
  • 使用UrlFetchApp将文件从.xlsx转换为.gsheet(uploadType = media&convert = true)
  • 使用UrlFetchApp更改生成的.gsheet的文件名和文件夹位置.文件夹位置现在与.xlsx文件的位置匹配(使用UrlFetchApp转换文件时,生成的文件似乎放在GDrive的根目录中)
  • 使用DriveApp获取.gsheet,然后打开它以供脚本访问
  • 使用列标题将.gsheet中的所有数据存储到2d数组中,作为行中每个元素的键
  • 将目标表中现有数据的所有ID值(唯一)存储到1d数组中
  • 比较两个数组并从2d数组中删除包含与1d数组中的ID匹配的ID的所有行,仅在2d数组中保留新数据
  • 循环遍历2d数组的每一行,然后遍历目标工作表的每一列,将数据从2d数组行添加到目标工作表中数据底部的新行,使用列标题的值作为键每个元素

我知道代码没有问题,因为它适用于我,所以它一定是权限问题,但我无法弄清楚如何.工作表与它们共享,存储文件的GDrive文件夹与它们共享.当我第一次自己运行脚本时,我必须授予脚本访问GDrive文件夹的权限,这显然已经完成了.

我是我们小组的开发人员,而不是数据的用户,但是我必须运行脚本来为用户每次需要时更新数据,而不是仅仅自己做,这是...烦人.

任何帮助,试图找出问题在这里的位置非常感谢.

编辑:再次阅读它,我发现当文件转换时,首先它保存到GDrive根,这就是为什么我必须更改文件夹.作为根,它不与该文件的用户共享.这可能是原因吗?如果是这样,我怎么能解决这个问题呢?我可以在转换时指定应将结果文件保存到哪个文件夹吗?

google-sheets google-apps-script google-drive-api google-sheets-api

9
推荐指数
2
解决办法
5913
查看次数

查询返回错误无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN

我目前正在使用以下电子表格

https://docs.google.com/spreadsheets/d/13KfjUhWSB-BjGyC1G8f8i8o4SPd1kFFLkjN7D6VY8Lk/edit#gid=993210576

在其中,我使用 IMPORTRANGE 从另一个工作表导入数据,并编写一个 QUERY 来将 B 列中的单元格(对应于特定零件编号)与导入工作表的 D 列中找到的相应切割数量相匹配。我写的查询如下。

=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1kFK-ZW8QjtsLYY5twdoMNTdqobGNWIV8nAFBRdouE28/edit#gid=473793446", 
 "FABRICATION LOG!A78169:K"), "Select Col3 where Col4 = "&B3&" limit 1", 0)`
Run Code Online (Sandbox Code Playgroud)

并返回错误消息:

无法解析函数 QUERY 参数 2 的查询字符串:NO_COLUMN:WFR332703

我已将 ImportRange 用于上面链接的电子表格的sheet1 中链接到的工作表,并允许访问,因此不存在错误。

Sheet1 用于显示 IMPORTRANGE 返回的值,以便我可以手动查找我期望获得的值。现在,对于其中一些单元格,我预计不会获得值,因为这些单元格不会出现在我要导入的工作表中。但对于其他人,我期待一个数值,但不会返回。我怀疑这可能与数据类型之间不匹配有关,因为 b 列中的条目都是字母和数字,但这只是一种预感,没有实际事实支持。如果有人有任何建议,我们将不胜感激。

google-sheets google-query-language google-sheets-query importrange google-sheets-formula

5
推荐指数
1
解决办法
4万
查看次数