如何根据单元格中的值将一行从一个谷歌电子表格移动到另一个
How to move a row from one google spreadsheet to another based on a value in a cell?
我的脚本应该根据单元格中的值将一行从一个谷歌电子表格移动到另一个。它没能做到这一点,我认为这是因为onEdit()函数,但无法弄清楚。我在同一个电子表格中为不同的表格找到了解决方案,但在不同的电子表格中没有。我的代码在下面。
function onEdit(e) {
var sss = SpreadsheetApp.getActiveSpreadsheet();
var ss = e.source.getActiveSheet();
var r = e.source.getActiveRange();
if(s.getName() == "source_sheet" && r.getColumn() == 7 && r.getValue() == "Pavlovo"){
//Get full range of data
var SRange = ss.getRange(1, 3, 1, 5);
//get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
//get the data values in range
var SData = SRange.getValues();
// tss = target spreadsheet
var tss = SpreadsheetApp.openById('1_t7BDCWgHJDip_cndzVashxLDQ_pVS6obi3I9TB_EJI');
var ts = tss.getSheetByName('Vitosha'); // ts = target sheet
//set the target range to the values of the source data
ts.getRange(A1Range).setValues(SData);
}
}
您使用的是一个简单的触发器onEdit
。此类触发器在未经授权的情况下运行,因此受到一些限制,例如:
他们可以修改绑定到的文件,但不能访问其他文件,因为这需要授权。
这就是SpreadsheetApp.openById
无法在代码中执行的原因。
解决方案:将函数重命名为onEdit以外的其他函数,并添加一个可在编辑时运行的可安装触发器。可安装触发器以您(即创建它的用户)的身份运行,因此可以访问您可以访问的任何文件。
相关文章:
- 如何创建一个谷歌地图地理坐标数组
- 在jQuery周期内触发一个谷歌时髦的脚本
- 谷歌应用程序脚本:如何修复循环将一个谷歌文档的段落插入另一个
- 从模态内部的主体复制一个谷歌地图
- 如何根据单元格中的值将一行从一个谷歌电子表格移动到另一个
- 使用两个不同表中的值在一个谷歌地图上显示标记
- 如何制作一个谷歌地图标记,随着地图缩放而缩小/缩小大小
- 如何链接一个表单输出到一个谷歌融合表查询使用javascript
- 获取值从一个谷歌表输入到另一个表与4循环
- 如何添加一个谷歌地图标记
- 我如何改变一个谷歌可视化表和它列的css属性
- 我们可以知道一个谷歌地图是否已经初始化
- 如何隐藏一个谷歌地图圆圈对象后,不同的时间间隔
- 创建一个谷歌地图
- 添加一个谷歌小工具到网页
- 显示一个谷歌地图上的引导模式
- 我如何得到一个谷歌+ +1按钮的计数器
- 多个多边形与多种颜色在一个谷歌地图
- 包括3个图像在一个谷歌地图标记
- 从chrome扩展做一个谷歌搜索