- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让一段代码在电子表格打开时工作。我添加了 onOpen 脚本,将脚本触发器设置为“当电子表格打开时”,然后等待......什么也没有发生。我做错了什么?
该脚本基本上根据单元格的值将一行从一张纸复制到另一张纸上。我希望脚本仅在工作表
时将具有指定值的所有行复制到下一个工作表function onOpen(){
moveThisRow();
}
function moveThisRow(){
var sheetNameToWatch = "Sheet1";
var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
var valueToWatch = "move it";
var sheetNameToMoveTheRowTo = "Sheet2";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
var fill = sheet.getActiveRange-2;
if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
}
}
救命!
最佳答案
您的代码实际上运行正确。问题是 if
语句中的条件永远不会得到满足。我在您的代码中添加了一个 else
部分,并带有一个警报,以便更轻松地显示这一点。
function onOpen(){
moveThisRow();
}
function moveThisRow(){
var sheetNameToWatch = "Sheet1";
var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
var valueToWatch = "move it";
var sheetNameToMoveTheRowTo = "Sheet2";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
// var fill = sheet.getActiveRange - 2;
if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(range.getRow());
SpreadsheetApp.getUi().alert('Conditions are true')
} else {
SpreadsheetApp.getUi().alert('Conditions are false')
}
}
如果您更新 onOpen
函数以使用下面的代码创建一个菜单,您可以看到,当您指定的条件实际得到满足时,该代码将按照您的指示执行操作。
function onOpen(){
SpreadsheetApp.getUi().createMenu('Test')
.addItem('Run', 'moveThisRow')
.addToUi();
}
此外,正如上面指出的,您的 fill
变量是 NaN,但这不会导致问题,因为它实际上并未在任何地方的代码中使用(我只是将其注释掉)。希望这有帮助!
关于javascript - onOpen 不适用于 Google 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48808363/
不久前,我为我的一个电子表格编写了一个脚本,它使用可安装的触发器 onOpen 来启动 SpreadsheetApp.getUi 函数。 该函数如下所示: function addMenu() {
大家好,我试图在我的谷歌表格每次打开时显示一个侧边栏。我正在使用 onOpen 函数并调用 html 页面,但它没有执行。当我手动运行该函数时,它可以工作,但是当打开谷歌工作表时它不会自行执行。这是我
我正在使用 XSockets 3.x(最新)。 我已经设置了一个 Controller : public class NotificationsController : XSocketControll
我在使用 WebSocket 时遇到了一个奇怪的问题。当我打开一个新的套接字时,我让服务器和客户端互相发送握手消息。但是,该代码似乎仅有时会执行。 服务器代码(ruby): # Set up the
我在电子表格的脚本编辑器中编写了一个函数,该函数旨在关注包含当前日期的单元格。一般来说,当函数由菜单项触发时它会起作用,但加载电子表格后它不会聚焦在任何单元格上。 function onOpen()
我目前正在编写一个聊天应用程序。到目前为止,用户可以互相发送消息,我可以将消息存储在我的数据库中。现在,当用户打开页面向另一个用户发送消息时,我想在我的 onOpen 函数中显示存储在数据库中的消息。
在 .Net 中,我如何监控文件是否已被其他程序访问(打开)?我在 FileSystemWatcher 中看不到 OnOpened 事件,所以我认为它不能那样做。还有其他方法吗?这在 Windows
我在 javascript 中使用 WebSocket。 WebSocket 需要 url 作为构造函数参数并立即尝试连接。我只能在构造它之后设置onopen方法。 所以,如果 WebSocket 在
paper-dialog 是否有“onOpen”事件?我想知道对话框何时完全“打开”和“关闭”,主要是为了在对话框完成其打开动画时更改内容。 以前in Polymer 0.5 one can list
我正在使用 Angular 4 和 Material 制作一个网络应用程序。我正在使用 Material “Sidenav”组件。如果 sidenav 打开或关闭,我想触发一个事件。通过向按钮的 cl
我正在尝试学习 WebSockets,并且我已经在 Node 中创建了一个 websocket 服务器,现在正在研究浏览器实现。我已经使用名为 Smart WebSocket Client 的 chr
我试图让一段代码在电子表格打开时工作。我添加了 onOpen 脚本,将脚本触发器设置为“当电子表格打开时”,然后等待......什么也没有发生。我做错了什么? 该脚本基本上根据单元格的值将一行从一张纸
我正在使用 materializecss ,那是 sideNav 初始化,但是 onOpen 属性不起作用。 $('.button-collapse').sideNav({
每当我尝试使用此 JS 代码连接到我的计算机上的 WebSocket 服务器时,我总是收到错误消息: $(document).ready(function () { var ws; t
此代码片段在打开工作表时创建了一个自定义菜单,如预期的那样: function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMen
有没有一种方法可以将参数添加到将添加到 Google 电子表格文档的脚本中心菜单中的函数?这是正常的 onOpen 方法。 function onOpen() { var sheet = Spre
Google Apps Script 中的内置 onOpen 触发器仅在用户 时运行具有编辑权限打开电子表格或文档。我正在开发一个电子表格,其中只有开发人员具有编辑权限,所有其他用户必须具有仅查看权限
我收到以下错误: 无法在“WebSocket”上执行“发送”:仍处于 CONNECTING 状态。在我发送消息之前,是否有一个事件可以检查以确保套接字完全连接。 我的代码如下: thi
我的功能包括向文档添加菜单和toast。我已经验证触发器(onOpen)也已设置。它仅在用户进入“工具”、“脚本管理器”、“运行”时才起作用。我们有太多具有太多背景的用户,因此无法期望知道如何做到这一
我无法在打开电子表格时运行我的脚本。我已手动设置触发器see 。授权范围也已设置。 该代码旨在从工作表中的表中获取一些联系人信息,创建一个联系人,然后将该联系人添加到表中指定的电子邮件列表中。有一个功
我是一名优秀的程序员,十分优秀!