将脚本变量限制为Google sheets中的特定工作表
Limiting script variables to specific sheets in Google Sheets
我有一个在Google Sheets中运行的脚本。该文档有多张图纸。因此,我希望能够有一个脚本,能够自动化所有工作表上的时间戳。
我已经设法让剧本在所有的纸上运行。。。然而,我希望能够有两个独立的变量列,并使它们相互独立。例如,var cols将影响SHEET 1,var colx会影响SHEET 2。这可能吗?
function onEdit(e) {
var s = e.source.getActiveSheet().getName();
var cols = [8];
var colx = [4, 9, 14];
var curDate = Utilities.formatDate(new Date(), "GMT-5", "M/d HH:mm:ss ")
var r = e.source.getActiveRange();
if (s !== "SHEET 1" && s !== 'SHEET 2' && s !== 'SHEET 3'|| cols.indexOf(e.range.columnStart) ==-1 && colx.indexOf(e.range.columnStart) ==-1||
!e.range.getValue()) return;
e.range.offset(0,1).setValue(curDate);
};
这里是新手编剧,谢谢你的耐心。我认为这将涉及到用var-cols和var-colx指定工作表名称,但不确定这是否是正确的方法。
提前感谢您的帮助!!!!!
我建议更改if
语句,使其更清楚地说明您要实现的目标。看起来你要么试图
- 当除
cols
或colx
之外的任何列匹配时应用时间戳,或者 - 当
cols
或colx
中定义的列匹配时,仅应用时间戳
场景1:应用时间戳,列匹配时除外
if (s == "SHEET 1" && cols.indexOf(e.range.columnStart) == -1) {
e.range.offset(0,1).setValue(curDate);
} else if (s == "SHEET 2" && colx.indexOf(e.range.columnStart) == -1) {
e.range.offset(0,1).setValue(curDate);
} else {
return;
}
场景2:仅当列匹配时应用时间戳
if (s == "SHEET 1" && cols.indexOf(e.range.columnStart) != -1) {
e.range.offset(0,1).setValue(curDate);
} else if (s == "SHEET 2" && colx.indexOf(e.range.columnStart) != -1) {
e.range.offset(0,1).setValue(curDate);
} else {
return;
}
场景3:如果单元格为空,则跳过时间戳
if (s == "SHEET 1" && cols.indexOf(e.range.columnStart) != -1 && !e.range.getValue()) {
e.range.offset(0,1).setValue(curDate);
} else if (s == "SHEET 2" && colx.indexOf(e.range.columnStart) != -1 && !e.range.getValue()) {
e.range.offset(0,1).setValue(curDate);
} else {
return;
}
我希望这能有所帮助。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 将脚本变量限制为Google sheets中的特定工作表
- Google Sheets API node.js快速入门不工作:API返回一个错误:error: unauthoriz
- 在Google Sheets中按列名从一个工作表提取单元格值到另一个工作表